diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/Makefile.am xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/Makefile.am
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/Makefile.am 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/Makefile.am 2014-01-04 10:28:19.000000000 +0000
@@ -14,6 +14,8 @@
pvr.njoy \
pvr.vuplus \
pvr.argustv \
+ pvr.dvblink \
+ pvr.wmc \
$(ADDON_MYTHTV_SUBDIRS) \
$(ADDON_IPTVSIMPLE_SUBDIRS)
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/Makefile.include.am xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/Makefile.include.am
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/Makefile.include.am 2013-12-13 13:17:21.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/Makefile.include.am 2014-01-04 10:28:12.000000000 +0000
@@ -2,7 +2,7 @@
# Makefile include for XBMC PVR add-ons
#
-INCLUDES = -I. @FFMPEG_INCLUDES@ -I$(abs_top_srcdir)/xbmc -I$(abs_top_srcdir)/lib @HOST_INCLUDES@
+INCLUDES = -I. -I$(abs_top_srcdir)/xbmc -I$(abs_top_srcdir)/lib @HOST_INCLUDES@
WARNINGS = -Wall -Wextra -Wno-missing-field-initializers -Woverloaded-virtual -Wno-parentheses
DEFINES = @ARCH_DEFINES@ -DUSE_DEMUX -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS
AM_CXXFLAGS = -g -O2 -fPIC $(WARNINGS) $(DEFINES) @HOST_CXXFLAGS@
@@ -36,9 +36,7 @@
mkdir -m 755 -p $(DESTDIR)@LIBDIR@/$(ADDONNAME)
mkdir -m 755 -p $(DESTDIR)@DATADIR@/$(ADDONNAME)
cp -f @BINPREFIX@$(ADDONBINNAME)@BIN_EXT@ $(DESTDIR)@LIBDIR@/$(ADDONNAME) ; chmod 655 $(DESTDIR)@LIBDIR@/$(ADDONNAME)/@BINPREFIX@$(ADDONBINNAME)@BIN_EXT@
- cp -r -f @abs_top_srcdir@/addons/$(ADDONNAME)/addon/* $(DESTDIR)@DATADIR@/$(ADDONNAME)
- cp -r -f @abs_top_builddir@/addons/$(ADDONNAME)/addon/* $(DESTDIR)@DATADIR@/$(ADDONNAME)
- chmod -R o+rx $(DESTDIR)@DATADIR@/$(ADDONNAME)
+ cp -r -f @abs_top_srcdir@/addons/$(ADDONNAME)/addon/* $(DESTDIR)@DATADIR@/$(ADDONNAME) ; chmod -R o+rx $(DESTDIR)@DATADIR@/$(ADDONNAME)
endif
all: @BUILD_TYPE@
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/addon.xml.in xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/addon.xml.in
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/addon.xml.in 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/addon.xml.in 2014-05-04 06:40:42.000000000 +0000
@@ -1,110 +1,162 @@
-
+
XBMC voorprogram vir die ARGUS TV PVR http://www.argus-tv.com//
XBMC frontend for the ARGUS TV PVR http://www.argus-tv.com//
+ XBMC клиент за ARGUS TV ПВР http://www.argus-tv.com//
+ Interfície de l'XBMC per l'ARGUS TV PVR http://www.argus-tv.com//
Rozhraní XBMC pro ARGUS TV PVR http://www.argus-tv.com//
+ Blaen XBMC ar gyfer ARGUS TV PVR http://www.argus-tv.com//
XBMC frontend til ARGUS TV PVR http://www.argus-tv.com//
- XBMC frontend für ARGUS TV PVR http://www.argus-tv.com//
+ XBMC Oberfläche für ARGUS TV PVR http://www.argus-tv.com//
Frontend του XBMC για το ARGUS TV PVR http://www.argus-tv.com/
XBMC frontend for the ARGUS TV PVR http://www.argus-tv.com//
+ XBMC frontend for the ARGUS TV PVR http://www.argus-tv.com//
Frontend de XBMC para ARGUS TV PVR http://www.argus-tv.com//
Frontend de XBMC para ARGUS TV PVR http://www.argus-tv.com//
+ XBMC esi ARGUS TV PVRile http://www.argus-tv.com//
XBMC Interface logicielle pour l'enregistreur vidéo ARGUS TV http://www.argus-tv.com//
+ Frontal XBMC pour le numériscope ARGUS TV http://www.argus-tv.com/
Interface de XBMC para o PRV de ARGUS TV http://www.argus-tv.com//
ממשק קדמי של XBMC ל ARGUS TV PVR http://www.argus-tv.com//
+ XBMC pozadinski softver za ARGUS TV PVR http://www.argus-tv.com//
XBMC ARGUS TV előtér-kiszolgáló http://www.argus-tv.com//
+ Frontend XBMC untuk ARGUS TV PVR http://www.argus-tv.com//
Frontend XBMC di ARGUS TV PVR http://www.argus-tv.com//
ARGUS TV PVR 用 XBMC フロントエンド http://www.argus-tv.com//
ARGUS TV PVR을 위한 XBMC 프론트엔드 http://www.argus-tv.com//
XBMC sąsaja su ARGUS TV PVR http://www.argus-tv.com//
+ XBMC galasistēma ARGUS TV PVR http://www.argus-tv.com//
XBMC интерфејс за ARGUS TV PVR http://www.argus-tv.com//
+ Bahagian hadapan XBMC untuk PVR ARGUS TV http://www.argus-tv.com//
XBMC frontend voor het ARGUS-TV PVR http://www.argus-tv.com//
- Interfejs XBMC dla ARGUS TV PVR http://www.argus-tv.com//
+ XBMC sitt frontend for ARGUS TV PVR http://www.argus-tv.com//
+ Klient XBMC dla ARGUS TV PVR http://www.argus-tv.com//
Frontend XBMC para ARGUS TV PVR http://www.argus-tv.com//
Frontend do XBMC para o PVR ARGUS TV http://www.argus-tv.com//
Frontend XBMC pentru PVR-ul ARGUS TV http://www.argus-tv.com/
Интерфейс XBMC для ARGUS TV PVR http://www.argus-tv.com//
XBMC rozhranie pre ARGUS TV PVR http://www.argus-tv.com//
XBMC-jev vmesnik za ARGUS TV PVR http://www.argus-tv.com//
+ XBMC frontend për ARGUS TV PVR http://www.argus-tv.com &
XBMC frontend för ARGUS TV PVR http://www.argus-tv.com/
- XBMC的ARGUS TV PVR前端 http://www.argus-tv.com//
+ ARGUS TV PVR http://www.argus-tv.com// உடைய XBMC பயனர் இணைப்பு
+ ARGUS TV PVR http://www.argus-tv.com// için XBMC başlangıcı
+ Накладка XBMC для ARGUS TV PVR http://www.argus-tv.com//
+ Giao tiếp XBMC cho ARGUS TV PVR http://www.argus-tv.com/
+ XBMC 的 ARGUS TV PVR 前端 http://www.argus-tv.com//
+ ARGUS TV PVR 'http://www.argus-tv.com//' 可使用的XBMC前端
ARGUS TV PVR voorprogram. Ondersteun stroom van Lewendige TV & Opnames, luister na Radio kanale, EPG en skedules.
ARGUS TV PVR frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and schedules.
+ ARGUS TV ПВР клиент. Поддържа стрийминг и записване на телевизия, слушане на радио канали, електронен програмен справочник и разписания.
+ Interfície per l'ARGUS TV PVR. Suporta fluxes de TV en directe i enregistraments, escolta de canals de ràdio, EPG i horaris.
Rozhraní ARGUS TV PVR. Podporuje proudové vysílání živého vysílání a nahrávek, poslech kanálů rádia, EPG, a časovače.
+ ARGUS TV PVR. Mae'n cynnal ffrydio Teledu Byw a Recordiadau, gwrando ar sianeli Radio ac Amserlen Rhaglenni.
ARGUS TV PVR frontend'en understøtter streaming af direkte TV og optagelser, lytning til radiokanaler, EPG og tidsplaner.
- ARGUS TV PVR frontend. Unterstützt Streaming von TV & Aufnahmen, Abspielen von Radiokanälen, EPG und Aufnahmepläne.
+ ARGUS TV PVR Oberfläche. Unterstützt Live TV & Aufnahmen, Radiokanäle, EPG und Aufnahmepläne.
Frontend για το ARGUS TV PVR. Υποστηρίζει ροές Live TV & Εγγραφές, ακρόαση Ραδιοφώνου, EPG και προγραμματισμό.
ARGUS TV PVR frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and schedules.
+ ARGUS TV PVR frontend. Supports streaming of Live TV & Recordings, listening to Radio channels, EPG and schedules.
Frontend de ARGUS TV PVR. Soporta transmisiones de TV en Vivo y Grabaciones, escuchar canales de Radio, Guía Electrónica de Programas (EPG) y temporizadores.
Frontend de ARGUS TV PVR. Soporta transmisiones de TV en Vivo y Grabaciones, escuchar canales de Radio, Guía Electrónica de Programas (EPG) y temporizadores.
+ ARGUS TV PVR esi. Toetab telekanalite striimimist ja salvestamist, raadio kuulamist ja elektroonilist saatekava.
Interface logicielle pour l'enregistreur vidéo ARGUS TV. Supporte la lecture en continu de télévision et son enregistrement, l'écoute de radios, les guides de programmes et les minuteries.
- Interface do PVR de ARGUS TV. Soporta transmisión de TV ao vivo e Gravacións, escoita de canles de radio, EPG e programacións.
+ Frontal de numériscope pour ARGUS TV, prenant en charge les télés en direct & les enregistrements, l'écoute de chaînes radio, le GÉP et les horaires.
+ Interface do PVR de ARGUS TV. Soporta transmisión de TV ao vivo e Gravacións, escoita de canles de radio, Guía e programacións.
ממשק קידמי של ARGOS TV PVR. תומך בהצגת שידורי טלויזיה חיים והקלטות רשימות של תחנות רדיו לוחות שידורים ותזמוני הקלטות.
+ ARGUS TV PVR pozadinski softver. Podržava stremanje televizije i snimanje, slušanje radio programa, EPG i zakazano snimanje.
ARGUS TV PVR előtér-kiszolgáló. Élő adások, felvételek és rádió csatornák sugárzásának támogatása EPG-vel és időzítéssel.
+ Frontend PVR ARGUS TV. Mendukung pengaliran TV dan Rekaman langsung, mendengarkan kanal radio, EPG dan jadwal.
Frontend ARGUS TV PVR. Supporta lo streaming e la registrazione di Live TV, l'ascolto dei canali radio, la guida ai programmi e gli orari.
ARGUS TV PVR フロントエンドです。テレビ放送のストリーミング、録画、ラジオチャンネルの視聴、EPG、録画予約をサポートしています。
ARGUS TV PVR 프론트엔드. 라이브 TV 스트리밍과 녹화, 라디오 청취, EPG와 예약 지원.
ARGUS TV PVR frontend. Palaiko transliaciją ir įrašus iš Live TV. Klausykite radijo kanalus ir derinkite EPG tvarkaraščius.
+ ARGUS TV PVR galasistēma. Atbalsta tiešraides TV un ierakstu straumēšanu, radio kanālu klausīšanos, EPG un plānotāju.
ARGUS TV PVR интерфејс. Подржува стриминг на Live TV & Снимки, слушање на радио канали, EPG и планирања.
+ Bahagian hadapan PVR ARGUS TV; menyokong penstirman TV Langsung & Rakaman, mendengar saluran Radio, EPG dan jadual.
ARGUS TV PVR frontend. Ondersteunt het bekijken van Live TV en opnames, het beluisteren van radio zenders, het tonen van de EPG en het inplannen/beheren van nieuwe opnames (Timers).
- Interfejs ARGUS TV PVR. Obsługuje strumieniowe przesyłanie TV na żywo oraz nagrań, słuchanie kanałów radiowych, EPG i harmonogramy.
+ ARGUS TV PVR frontend. Støtter visning av direkte TV og opptak, lytting til radiokanaler, EPG og tidsopptak.
+ Klient ARGUS TV PVR. Wspiera strumieniowanie kanałów telewizyjnych, nagrywanie, planowanie nagrań oraz funkcje przewodnika TV.
Frontend ARGUS TV PVR. Suporta transmissão de TV em directo e Gravações, audição de estações de Rádio, EPG e agendamentos.
Frontend do PVR ARGUS TV. Suporta streaming de TV Ao Vivo & Gravações, canais de Rádio, EPG e agendamento.
Frontend PVR ARGUS TV. Suportă difuzare în flux pentru televiziune în direct și pentru înregistrări, ascultarea canalelor radio, EPG și planificări.
Интерфейс для ARGUS TV PVR. Поддерживает просмотр потокового ТВ и видеозаписей, прослушивание радиоканалов и работу с электронным телегидом и расписаниями.
ARGUS TV PVR rozhranie. Podporuje streamovanie živého TV vysielania a nahrávok, počúvanie rozhlasových kanálov, EPG a plánovače.
Vmesnik za ARGUS TV PVR; podpira pretakanje televizije v živo & posnetkov, poslušanje radia, EPG in časovnike.
+ ARGUS TV PVR frontend. Përkrahën transmetimin e Live TV's & Rregjistrime, dëgjimin të radio-kanaleve, EPG'së dhe orarin.
ARGUS TV PVR frontend. Stödjer strömmning av direktsänd TV & inspelningar, lyssna på radiokanaler, EPG och schemaläggning.
- ARGUS TV PVR前端支持直播电视和节目录制、收听广播频道、电子节目表及计划任务功能。
+ ARGUS TV PVR முன்நிலை. லைவ் டிவி & பதிவுகளின் ஸ்ட்ரீமிங் செய்யவும், ரேடியோ சேனல்கள் கேட்கவும் மற்றும் EPG, துணைபுரிகிறது.
+ Накладка для ARGUS TV. Підтримує потокове Live TV і запис, прослуховування радіо каналів, телегід та планування.
+ Giao tiếp PVR cho ARGUS TV. Hỗ trợ trực tuyến của Live TV và Recordings, nghe Đài phát thanh (Radio), EPG và lịch trình (Schedules).
+ ARGUS TV PVR 前端。支持直播电视和录像流媒体、收听电台、电子节目单及计划任务功能。
+ ARGUS TV PVR前端。支援的串流媒體包括有:電視直播和節目錄影,收聽廣播頻道,電子節目表和時間表。
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 en absolut responsables d'enregistraments fallist, temporitzadors incorrectes, hores tudades, o qualsevol altra efecte indesitjable...
+ Тази програма е нестабилна! Авторите не носят отговорност за неуспешно записване, некоректни броячи, пропиляното време и други нежелани ефекти.
+ Això és programari inestable! Els autors no són de cap manera responsables dels enregistraments que han fallat, temporitzadors incorrectes, hores perdudes, o qualsevols altres efectes indesitjables..
Tento software není stabilní. Autoři nejsou žádným způsobem zodpovědní za selhání při nahrávání, neplatné časovače, ztracený čas, či jakékoliv jiné nežádoucí události...
+ Mae hwn yn feddalwedd ansad! Nid yw'r awduron yn gyfrifol mewn unrhyw ffordd am fethu recordio, amseru gwallus, oriau wedi eu gwastraffu nac effeithiau anymunol eraill.
Dette er ustabil software! Ophavsmændene er på ingen måde ansvarlige for mislykkede optagelser, fejlagtige 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.
+ Dies ist instabile Software! Die Autoren sind in keiner Weise verantwortlich für fehlgeschlagene Aufnahmen, falsche Timer, verschwendete Zeit oder andere ungewünschte Effekte.
Ασταθές πρόγραμμα! Οι δημιουργοί δεν είναι σε καμία περίπτωση υπεύθυνοι για αποτυχημένες εγγραφές, λανθασμένους χρονοδιακόπτες, χαμένες ώρες, ή κάθε είδους ανεπιθύμητα αποτελέσματα..
This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects..
+ This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects..
¡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.
¡Este software es inestable! Los autores no se responsabilizan por grabaciones fallidas, temporizadores incorrectos, horas perdidas, o cualquier 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! Ohjelman kirjoittavat eivät vastaa millään tavalla epäonnistuneista nauhoituksista, ajastimen väärästä toiminnasta, hukatusta ajasta tai muista ei-halutuista tapahtumista.
Logiciel en cours d'élaboration ! Les auteurs ne sont en aucun cas responsables de l'échec des enregistrements, minuteries défectueuses, temps perdu ou autres effets indésirables..
+ 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.
Este é software non estable, os autores non se fan responsábeis dos erros na gravacións, temporizadores incorrectos, e outros efectos non desexados.
זוהי תוכנה לא יציבה! היוצרים אינם אחראים לכשלון בהקלטה, תזמונים לא נכונים, שעות מבוזבזות או כל השפעות בלתי רצויות אחרות.
+ Ovo je nestabilan softver! Autori nisu ni na koji način odgovorani za neuspjelo snimanje, netočna zakazana snimanja, 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 software è instabile! Gli autori non sono in alcun modo responsabili per registrazioni fallite, timers incorretti, ore perse, o qualsiasi altro effetto indesiderato.
これは不安定なソフトウェアです!本プログラムの作者は、録画の失敗、正確に作動しなかったタイマー、無駄にした時間、その他あらゆる好ましくない結果について責任を負わないものとします。
+ ეს არის არასტაბილური პროგრამული უზრუნველყოფა! ავტორები არ არიან პასუხისმგებელი შეცდომებზე, არასწორ EPG-ზე, დაკარგულ დროზე ან სხვა ხარვეზებზე
이 소프트웨어는 불안정합니다! 제작자는 녹화 실패, 부정확한 타이머, 시간 낭비 및 기타 예상하지 못한 결과에 대해 책임지지 않습니다..
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](xbmc.lt siūlo/rekomenduoja testuojant šį priedą persijungti į Anglų [orinali] kalbą)[/COLOR]
+ Šī ir nestabila programmatūra! Autori nav nekādā vaidā 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..
Deze software is niet 100% stabiel! De auteurs zijn op geen enkele wijze aansprakelijk voor mislukte opnames, verspilde tijd, of enig ander ongewild neveneffect..
Dette er ustabil programvare! Skaperen har ikke på noen måte ansvar for feilede opptak, feile timere, bortkastede timer, eller andre uønskede effekter..
- To oprogramowanie jest niestabilne! Autorzy w żaden sposób nie odpowiadają za nieudane nagrania, źle działające wyłączniki czasowe, stracone godziny czy też jakiekolwiek inne niepożądane efekty.
+ Oprogramowanie nadal jest w fazie rozwoju i jest niestabilne! Autorzy w żaden sposób nie są odpowiedzialni za błędne nagrania, błędy planowaniu nagrań, zmarnowany czas ani jakiekolwiek inne niepożądane efekty.
Este software é instável! Os autores não são de forma alguma responsáveis por gravações falhadas, temporizadores incorrectos, horas desperdiçadas, ou qualquer outro tipo de efeitos indesejáveis..
Este é um software instável! Os autores não são responsáveis por falhas nas gravações, agendamentos incorretos, horas desperdiçadas, ou quaisquer outros efeitos indesejáveis.
Acesta nu este o aplicație definitivă! Autorii nu sunt în nici un fel responsabili pentru înregistrări eșuate, cronometre incorecte, ore pierdute, sau orice alte efecte nedorite...
Это нестабильная программа! Авторы не несут ответственности за неудачные записи, неверные таймеры, потраченное время и прочие нежелательные эффекты.
Tento softvér nie je stabilný! Autori nenesú žiadnu zodpovednosť za chybné nahrávky vysielania, nesprávne časovače alebo iné neželané udalosti spôsobené týmto softvérom..
To je nestabilna programska oprema! Avtorji niso odgovorni za neuspela snemanja, nepravilne časovnike, zapravljen čas in katerikoli drug neželen učinek...
+ Ky program nuk është ende stabil! Autorët së këtij programi nuk janë në as një menyr përgjegjës për rregistrime të gabuara, timer të pasaktë, kohë të humbur ose efekte të tillë të padëshirueshëm.
+ Овај софтвер је нестабилан! Аутори ни на који начин нису одговорни за неуспела снимања, неисправна заказана снимања, изгубљене сате или друге нежељене ефекте.
Detta är ostabil mjukvara! Upphovsmännen är inte ansvariga för misslyckade inspelningar, inkorrekta timers, bortslösade timmar, eller några andra oönskade effekter..
- 这是不稳定版的软件!作者不对录制失败、错误定时造成时间浪费或其它不良影响负责。
+ இந்த நிலையற்ற மென்பொருள்! தோல்வியடைந்தது பதிவுகள், தவறான டைமர்கள், வீணாகி மணி, அல்லது வேறு எந்த விரும்பத்தகாத விளைவுகலுக்கு இதன் ஆசிரியர்கள் பொறுப்பு இல்லை.
+ Ин нармафзори ноустувор аст! Муаллифон барои вайрониҳои сабт, вақтсанҷҳои нодуруст, соатҳои бефоида ва дигар таъсирҳои номатлуб ҷавобгар намебошанд.
+ Bu stabil olmayan program! Yapımcılar hatalı kayıtlardan, bozuk sürelerden, harcanan vakitten veya herhangi bir olumsuz etkiden dolayı sorumlu tutulamaz.
+ Це нестабільна програма! Автори не несуть відповідальності за попсуті записи, неправильні таймери, втрачений час та інші небажані ефекти.
+ Đây là phần mềm không ổn định! Các tác giả sẽ không chịu trách nhiệm nào với các bản ghi thất bại, bị đặt giờ sai, giờ lãng phí, hoặc các tác dụng không mong muốn khác..
+ 这是不稳定版的软件!作者不对录像失败、错误定时造成时间浪费或其它不良影响负责。
+ 這是測試版軟體!其原創作者並無法對於以下情況負責,包含:錄影失敗,不正確的定時設定,多餘時數,或任何產生的其它不良影響...
@OS@
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/changelog.txt xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/changelog.txt
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/changelog.txt 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/changelog.txt 2014-05-04 06:40:42.000000000 +0000
@@ -1,5 +1,35 @@
-v1.6.166 (13-03-2013)
+v1.9.176 (22-04-2014)
+- improved timer conflicts detection
+- fix threads on OS X
+v1.9.175 (17-03-2014)
+- Updated language files from Transifex
+v1.9.174 (03-03-2014)
+- Updated language files from Transifex
+v1.9.173 (30-01-2014)
+- added service events monitor
+v1.9.172 (23-12-2013)
+- base new timers on templates retrieved from ARGUS TV server
+v1.9.171 (11-12-2013)
+- removed redundant notification
+v1.9.170 (28-09-2013)
+- add timeshift buffer functions
+v1.8.170 (23-10-2013)
+- Fixes deleting of recordings (regression)
+- Improves load time of recordings
+v1.8.169 (28-09-2013)
+- Fixes playing recordings on Windows
+- Migrated all UNC share name handling to single method
+v1.8.168 (12-09-2013)
+- Minimum ARGUS TV version 2.1 required
+- Switched to integer ID's
+v1.8.167 (29-08-2013)
+- Fixed Live-TV XBMC Gotham
+v1.8.166 (08-06-2013)
+- sync with PVR API v1.8.0
+v1.7.166 (13-03-2013)
- Fixed error when adding timers with " in their title
+v1.7.165 (07-03-2013)
+- Bump after PVR API version bump
v1.6.165 (19-01-2013)
- Do not disable the add-on when it can not connect to the ARGUS-TV server.
v1.6.164 (18-01-2013)
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Afrikaans/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Afrikaans/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Afrikaans/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Afrikaans/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Afrikaans (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/af/)\n"
+"Language-Team: Afrikaans (http://www.transifex.com/projects/p/xbmc-main/language/af/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Albanian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Albanian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Albanian/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Albanian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,41 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Albanian (http://www.transifex.com/projects/p/xbmc-main/language/sq/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: sq\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "ARGUS TV Hostname"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV porti i webserver'it"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Inkludo Radionë"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Timeout i lidhjes (s)"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Fjalkalim"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Vonesë pas tuning (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Amharic/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Amharic/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Amharic/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Amharic/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,25 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Amharic (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/am/)\n"
+"Language-Team: Amharic (http://www.transifex.com/projects/p/xbmc-main/language/am/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: am\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "ሬዲዮ ማካተቻ"
+
msgctxt "#30005"
msgid "Password"
msgstr "የመግቢያ ቃል"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Arabic/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Arabic/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Arabic/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Arabic/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Arabic (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/ar/)\n"
+"Language-Team: Arabic (http://www.transifex.com/projects/p/xbmc-main/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Basque/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Basque/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Basque/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Basque/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Basque (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/eu/)\n"
+"Language-Team: Basque (http://www.transifex.com/projects/p/xbmc-main/language/eu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Belarusian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Belarusian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Belarusian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Belarusian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Belarusian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/be/)\n"
+"Language-Team: Belarusian (http://www.transifex.com/projects/p/xbmc-main/language/be/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Bosnian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Bosnian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Bosnian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Bosnian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Bosnian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/bs/)\n"
+"Language-Team: Bosnian (http://www.transifex.com/projects/p/xbmc-main/language/bs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Bulgarian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Bulgarian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Bulgarian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Bulgarian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,45 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Bulgarian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/bg/)\n"
+"Language-Team: Bulgarian (http://www.transifex.com/projects/p/xbmc-main/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "ARGUS TV хост"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "Порт на уеб сървъра за ARGUS TV"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Включи радиото"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Таймаут при свързване (с)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Windows потребителски профил"
+
msgctxt "#30005"
msgid "Password"
msgstr "Парола"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Забавяне след настройката (мс)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Burmese/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Burmese/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Burmese/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Burmese/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,29 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Burmese (http://www.transifex.com/projects/p/xbmc-main/language/my/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: my\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "ရေဒီယိုအပါအဝင်"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "ချိတ်ဆက်မှု့အချိန်ပြည့်သွားပါပြီ။"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "စကားဝှက်"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Catalan/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Catalan/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Catalan/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Catalan/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,29 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Catalan (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/ca/)\n"
+"Language-Team: Catalan (http://www.transifex.com/projects/p/xbmc-main/language/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "Nom de màquina de l'ARGUS TV"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "Port del servidor web de l'ARGUS TV"
+
msgctxt "#30002"
msgid "Include Radio"
msgstr "Inclou ràdio"
@@ -32,3 +39,7 @@
msgctxt "#30005"
msgid "Password"
msgstr "Contrasenya"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Retard després de sintonitzar un canal (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Chinese (Simple)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Chinese (Simple)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Chinese (Simple)/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Chinese (Simple)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Chinese (Simple) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/zh/)\n"
+"Language-Team: Chinese (Simple) (http://www.transifex.com/projects/p/xbmc-main/language/zh/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -19,11 +18,11 @@
msgctxt "#30000"
msgid "ARGUS TV Hostname"
-msgstr "ARGUS TV主机名"
+msgstr "ARGUS TV 主机名"
msgctxt "#30001"
msgid "ARGUS TV webserver port"
-msgstr "ARGUS TV web服务器端口"
+msgstr "ARGUS TV web 服务器端口"
msgctxt "#30002"
msgid "Include Radio"
@@ -35,7 +34,7 @@
msgctxt "#30004"
msgid "Windows user account"
-msgstr "Windows用户帐号"
+msgstr "Windows 用户帐号"
msgctxt "#30005"
msgid "Password"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Chinese (Traditional)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Chinese (Traditional)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Chinese (Traditional)/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Chinese (Traditional)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,45 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Chinese (Traditional) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/zh_TW/)\n"
+"Language-Team: Chinese (Traditional) (http://www.transifex.com/projects/p/xbmc-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 "ARGUS TV Hostname"
+msgstr "ARGUS TV主機名稱"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV 網絡服務器端口"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "包含收音機"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "連接超時(秒)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "視窗使用帳戶"
+
msgctxt "#30005"
msgid "Password"
msgstr "密碼"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "在調頻後延遲 (毫秒)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Croatian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Croatian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Croatian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Croatian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,45 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Croatian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/hr/)\n"
+"Language-Team: Croatian (http://www.transifex.com/projects/p/xbmc-main/language/hr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: 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 "ARGUS TV Hostname"
+msgstr "ARGUS TV naziv računala"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV ulaz web poslužitelja"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Uključujući radio"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Istek vremena (sekunde)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Windows korinički račun"
+
msgctxt "#30005"
msgid "Password"
-msgstr "Zaporka"
+msgstr "Lozinka"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Odgda nakon pronalaska kanala (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Czech/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Czech/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Czech/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Czech/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Czech (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/cs/)\n"
+"Language-Team: Czech (http://www.transifex.com/projects/p/xbmc-main/language/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Danish/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Danish/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Danish/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Danish/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Danish (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/da/)\n"
+"Language-Team: Danish (http://www.transifex.com/projects/p/xbmc-main/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Dutch/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Dutch/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Dutch/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Dutch/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Dutch (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/nl/)\n"
+"Language-Team: Dutch (http://www.transifex.com/projects/p/xbmc-main/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/English/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/English/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/English/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/English/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: English (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/en/)\n"
+"Language-Team: English (http://www.transifex.com/projects/p/xbmc-main/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/English (Australia)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/English (Australia)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/English (Australia)/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/English (Australia)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: English (Australia) (http://www.transifex.com/projects/p/xbmc-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 "#30005"
+msgid "Password"
+msgstr "Password"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/English (New Zealand)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/English (New Zealand)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/English (New Zealand)/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/English (New Zealand)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,45 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: English (New Zealand) (http://www.transifex.com/projects/p/xbmc-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 "ARGUS TV Hostname"
+msgstr "ARGUS TV Hostname"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV webserver port"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Include Radio"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Connect timeout (s)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Windows user account"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Password"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Delay after tuning (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/English (US)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/English (US)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/English (US)/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/English (US)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: English (US) (http://www.transifex.com/projects/p/xbmc-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 "#30005"
+msgid "Password"
+msgstr "Password"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Esperanto/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Esperanto/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Esperanto/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Esperanto/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Esperanto (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/eo/)\n"
+"Language-Team: Esperanto (http://www.transifex.com/projects/p/xbmc-main/language/eo/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Estonian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Estonian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Estonian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Estonian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,45 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Estonian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/et/)\n"
+"Language-Team: Estonian (http://www.transifex.com/projects/p/xbmc-main/language/et/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "ARGUS TV hosti nimi"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV veebiserveri port"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Hõlma raadio"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Ühenduse aegumine (s)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Windowsi kasutajakonto"
+
msgctxt "#30005"
msgid "Password"
msgstr "Salasõna"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Viivitus peale häälestust (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Faroese/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Faroese/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Faroese/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Faroese/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Faroese (http://www.transifex.com/projects/p/xbmc-main/language/fo/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fo\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Loyniorð"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Finnish/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Finnish/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Finnish/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Finnish/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Finnish (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/fi/)\n"
+"Language-Team: Finnish (http://www.transifex.com/projects/p/xbmc-main/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/French/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/French/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/French/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/French/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: French (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/fr/)\n"
+"Language-Team: French (http://www.transifex.com/projects/p/xbmc-main/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/French (Canada)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/French (Canada)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/French (Canada)/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/French (Canada)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,45 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: French (Canada) (http://www.transifex.com/projects/p/xbmc-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 "ARGUS TV Hostname"
+msgstr "Nom d'hôte ARGUS TV"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "Port de serveur Web ARGUS TV"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Inclure la radio"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Délai d'attente de connexion (s)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Compte utilisateur Windows"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Mot de passe"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Délai après syntonisation (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Galician/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Galician/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Galician/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Galician/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Galician (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/gl/)\n"
+"Language-Team: Galician (http://www.transifex.com/projects/p/xbmc-main/language/gl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Georgian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Georgian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Georgian/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Georgian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,29 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Georgian (http://www.transifex.com/projects/p/xbmc-main/language/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ka\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "რადიოს ჩათვლით"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "შეერთების დაყოვნება(ები)"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "პაროლი"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/German/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/German/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/German/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/German/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: German (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/de/)\n"
+"Language-Team: German (http://www.transifex.com/projects/p/xbmc-main/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -23,15 +22,15 @@
msgctxt "#30001"
msgid "ARGUS TV webserver port"
-msgstr "ARGUS TV Web-Server Port"
+msgstr "ARGUS TV Webserver Port"
msgctxt "#30002"
msgid "Include Radio"
-msgstr "Zeige Radiokanäle"
+msgstr "Schließe Radiokanäle ein"
msgctxt "#30003"
msgid "Connect timeout (s)"
-msgstr "Verbindungszeitüberlauf (s)"
+msgstr "Verbindungs-Timeout (s)"
msgctxt "#30004"
msgid "Windows user account"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Greek/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Greek/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Greek/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Greek/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Greek (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/el/)\n"
+"Language-Team: Greek (http://www.transifex.com/projects/p/xbmc-main/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Haitian (Haitian Creole)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Haitian (Haitian Creole)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Haitian (Haitian Creole)/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Haitian (Haitian Creole)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Haitian (Haitian Creole) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/ht/)\n"
+"Language-Team: Haitian (Haitian Creole) (http://www.transifex.com/projects/p/xbmc-main/language/ht/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Hebrew/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Hebrew/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Hebrew/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Hebrew/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Hebrew (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/he/)\n"
+"Language-Team: Hebrew (http://www.transifex.com/projects/p/xbmc-main/language/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Hungarian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Hungarian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Hungarian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Hungarian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Hungarian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/hu/)\n"
+"Language-Team: Hungarian (http://www.transifex.com/projects/p/xbmc-main/language/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Icelandic/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Icelandic/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Icelandic/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Icelandic/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Icelandic (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/is/)\n"
+"Language-Team: Icelandic (http://www.transifex.com/projects/p/xbmc-main/language/is/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Indonesian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Indonesian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Indonesian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Indonesian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,45 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Indonesian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/id/)\n"
+"Language-Team: Indonesian (http://www.transifex.com/projects/p/xbmc-main/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "Hostname ARGUS TV"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "Port server web ARGUS TV"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Mencakup Radio"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Timeout koneksi (s)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Akun pengguna WIndows"
+
msgctxt "#30005"
msgid "Password"
msgstr "Password"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Jeda setelah penyetelan (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Italian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Italian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Italian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Italian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Italian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/it/)\n"
+"Language-Team: Italian (http://www.transifex.com/projects/p/xbmc-main/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Japanese/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Japanese/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Japanese/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Japanese/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/ja/)\n"
+"Language-Team: Japanese (http://www.transifex.com/projects/p/xbmc-main/language/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Korean/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Korean/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Korean/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Korean/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Korean (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/ko/)\n"
+"Language-Team: Korean (http://www.transifex.com/projects/p/xbmc-main/language/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Latvian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Latvian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Latvian/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Latvian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,29 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Latvian (http://www.transifex.com/projects/p/xbmc-main/language/lv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "ARGUS TV saimniekvārds"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Iekļaut radio"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Parole"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Lithuanian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Lithuanian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Lithuanian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Lithuanian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Lithuanian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/lt/)\n"
+"Language-Team: Lithuanian (http://www.transifex.com/projects/p/xbmc-main/language/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Macedonian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Macedonian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Macedonian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Macedonian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Macedonian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/mk/)\n"
+"Language-Team: Macedonian (http://www.transifex.com/projects/p/xbmc-main/language/mk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Malay/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Malay/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Malay/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Malay/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,45 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Malay (http://www.transifex.com/projects/p/xbmc-main/language/ms/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ms\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "Nama hos ARGUS TV"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "Port pelayan sesawang ARGUS TV"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Sertakan Radio"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Had masa tamat sambung"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Akaun pengguna Windows"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Kata Laluan"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Lengahan selepas penalaan (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Maltese/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Maltese/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Maltese/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Maltese/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Maltese (http://www.transifex.com/projects/p/xbmc-main/language/mt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: 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 "#30005"
+msgid "Password"
+msgstr "Sigriet"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Maori/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Maori/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Maori/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Maori/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Maori (http://www.transifex.com/projects/p/xbmc-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 "#30005"
+msgid "Password"
+msgstr "Kupuhipa"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Norwegian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Norwegian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Norwegian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Norwegian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,26 +1,45 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Norwegian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/no/)\n"
+"Language-Team: Norwegian (http://www.transifex.com/projects/p/xbmc-main/language/no/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: no\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "ARGUS TV vertsnavn"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV webtjener-port"
+
msgctxt "#30002"
msgid "Include Radio"
msgstr "Inkluder radio"
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Tilkobling tidsavbrudd(er)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Windows brukerkonto"
+
msgctxt "#30005"
msgid "Password"
msgstr "Passord"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Forsinkelse etter lasting (i millisekunder)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Persian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Persian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Persian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Persian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Persian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/fa/)\n"
+"Language-Team: Persian (http://www.transifex.com/projects/p/xbmc-main/language/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Persian (Iran)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Persian (Iran)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Persian (Iran)/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Persian (Iran)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Persian (Iran) (http://www.transifex.com/projects/p/xbmc-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 "#30005"
+msgid "Password"
+msgstr "رمز عبور"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Polish/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Polish/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Polish/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Polish/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Polish (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/pl/)\n"
+"Language-Team: Polish (http://www.transifex.com/projects/p/xbmc-main/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -19,11 +18,11 @@
msgctxt "#30000"
msgid "ARGUS TV Hostname"
-msgstr "Nazwa hosta ARGUS TV"
+msgstr "Nazwa hosta"
msgctxt "#30001"
msgid "ARGUS TV webserver port"
-msgstr "Port serwera ARGUS TV"
+msgstr "Port serwera"
msgctxt "#30002"
msgid "Include Radio"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Portuguese/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Portuguese/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Portuguese/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Portuguese/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Portuguese (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/pt/)\n"
+"Language-Team: Portuguese (http://www.transifex.com/projects/p/xbmc-main/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Portuguese (Brazil)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Portuguese (Brazil)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Portuguese (Brazil)/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Portuguese (Brazil)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/xbmc-main/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Romanian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Romanian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Romanian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Romanian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Romanian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/ro/)\n"
+"Language-Team: Romanian (http://www.transifex.com/projects/p/xbmc-main/language/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Russian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Russian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Russian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Russian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Russian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/ru/)\n"
+"Language-Team: Russian (http://www.transifex.com/projects/p/xbmc-main/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -31,7 +30,7 @@
msgctxt "#30003"
msgid "Connect timeout (s)"
-msgstr "Тайм-ауты подключения"
+msgstr "Тайм-ауты подключения (с.)"
msgctxt "#30004"
msgid "Windows user account"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Serbian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Serbian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Serbian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Serbian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,41 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Serbian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/sr/)\n"
+"Language-Team: Serbian (http://www.transifex.com/projects/p/xbmc-main/language/sr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sr\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 "ARGUS TV Hostname"
+msgstr "ARGUS TV име домаћина"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV порт сервера"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Укључи радио"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Истек времена за повезивање (с)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Windows кориснички налог"
+
msgctxt "#30005"
msgid "Password"
-msgstr "Lozinka"
+msgstr "Лозинка"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Serbian (Cyrillic)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Serbian (Cyrillic)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Serbian (Cyrillic)/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Serbian (Cyrillic)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Serbian (Cyrillic) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/sr_RS/)\n"
+"Language-Team: Serbian (Cyrillic) (http://www.transifex.com/projects/p/xbmc-main/language/sr_RS/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Slovak/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Slovak/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Slovak/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Slovak/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Slovak (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/sk/)\n"
+"Language-Team: Slovak (http://www.transifex.com/projects/p/xbmc-main/language/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Slovenian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Slovenian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Slovenian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Slovenian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Slovenian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/sl/)\n"
+"Language-Team: Slovenian (http://www.transifex.com/projects/p/xbmc-main/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -31,7 +30,7 @@
msgctxt "#30003"
msgid "Connect timeout (s)"
-msgstr "Najdaljši čas povezave (s)"
+msgstr "Čas preteka povezovanja (s)"
msgctxt "#30004"
msgid "Windows user account"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Spanish/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Spanish/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Spanish/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Spanish/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/es/)\n"
+"Language-Team: Spanish (http://www.transifex.com/projects/p/xbmc-main/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Spanish (Argentina)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Spanish (Argentina)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Spanish (Argentina)/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Spanish (Argentina)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/es_AR/)\n"
+"Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/xbmc-main/language/es_AR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Spanish (Mexico)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Spanish (Mexico)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Spanish (Mexico)/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Spanish (Mexico)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Spanish (Mexico) (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/es_MX/)\n"
+"Language-Team: Spanish (Mexico) (http://www.transifex.com/projects/p/xbmc-main/language/es_MX/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Swedish/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Swedish/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Swedish/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Swedish/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Swedish (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/sv/)\n"
+"Language-Team: Swedish (http://www.transifex.com/projects/p/xbmc-main/language/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Tajik/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Tajik/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Tajik/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Tajik/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Tajik (http://www.transifex.com/projects/p/xbmc-main/language/tg/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: tg\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Парол"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Tamil (India)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Tamil (India)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Tamil (India)/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Tamil (India)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,45 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Tamil (India) (http://www.transifex.com/projects/p/xbmc-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 "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "ARGUS தொலைகாட்சி புரவன்பெயர் "
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS தொலைகாட்சி இணைய வழங்கன் துறை"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "வானொலி உள்ளடக்கு"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "இணைப்பு காலாவதி (நொடி)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "சாளரம் பயனர் விவரங்கள்"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "அடையாளச் சொல்"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "இசைவாக்கத்திற்கு பின்னுள்ள தாமதம் (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Telugu/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Telugu/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Telugu/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Telugu/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Telugu (http://www.transifex.com/projects/p/xbmc-main/language/te/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: te\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "సంకేతపదం"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Thai/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Thai/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Thai/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Thai/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,16 +1,15 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Thai (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/th/)\n"
+"Language-Team: Thai (http://www.transifex.com/projects/p/xbmc-main/language/th/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Turkish/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Turkish/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Turkish/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Turkish/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,45 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Turkish (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/tr/)\n"
+"Language-Team: Turkish (http://www.transifex.com/projects/p/xbmc-main/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: tr\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "ARGUS TV sunucu adı"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV web sunucusu portu"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Radyoları içe aktar"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Bağlantı süresi doldu (s)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Windows kullanıcı hesabı"
+
msgctxt "#30005"
msgid "Password"
msgstr "Parola"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Gecikme zamanı (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Ukrainian/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Ukrainian/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Ukrainian/strings.po 2013-02-16 21:46:32.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Ukrainian/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -1,22 +1,45 @@
# XBMC Media Center language file
# Addon Name: ARGUS TV client
# Addon id: pvr.argustv
-# Addon version: 1.6.163
# Addon Provider: Fred Hoogduin, Marcel Groothuis
msgid ""
msgstr ""
-"Project-Id-Version: XBMC Main Translation Project (Frodo)\n"
+"Project-Id-Version: XBMC Main\n"
"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: XBMC Translation Team\n"
-"Language-Team: Ukrainian (http://www.transifex.com/projects/p/XBMC-Main-Frodo/language/uk/)\n"
+"Language-Team: Ukrainian (http://www.transifex.com/projects/p/xbmc-main/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uk\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 "ARGUS TV Hostname"
+msgstr "Сервер ARGUS TV"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "Порт веб-сервера ARGUS TV"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Додати радіо"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Затримка зв’язку (с) "
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Рахунок користувача Windows"
+
msgctxt "#30005"
msgid "Password"
msgstr "Пароль"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Затримка після регулювання (мс)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Uzbek/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Uzbek/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Uzbek/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Uzbek/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,21 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Uzbek (http://www.transifex.com/projects/p/xbmc-main/language/uz/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uz\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Maxfiy so'z"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Vietnamese/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Vietnamese/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Vietnamese/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Vietnamese/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,45 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Vietnamese (http://www.transifex.com/projects/p/xbmc-main/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "ARGUS TV Hostname"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "ARGUS TV webserver port"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Bao gồm Đài phát thanh"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Thời gian chờ kết nối (s)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Tài khoản người dùng Windows"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Mật khẩu"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Trì hoãn sau khi điều chỉnh (ms)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Vietnamese (Viet Nam)/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Vietnamese (Viet Nam)/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Vietnamese (Viet Nam)/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Vietnamese (Viet Nam)/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,25 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/projects/p/xbmc-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 "#30004"
+msgid "Windows user account"
+msgstr "Tài khoản người dùng Window"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Mật khẩu"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Welsh/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Welsh/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/addon/resources/language/Welsh/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/addon/resources/language/Welsh/strings.po 2014-05-04 06:40:42.000000000 +0000
@@ -0,0 +1,45 @@
+# XBMC Media Center language file
+# Addon Name: ARGUS TV client
+# Addon id: pvr.argustv
+# Addon Provider: Fred Hoogduin, Marcel Groothuis
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC Main\n"
+"Report-Msgid-Bugs-To: http://trac.xbmc.org/\n"
+"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: XBMC Translation Team\n"
+"Language-Team: Welsh (http://www.transifex.com/projects/p/xbmc-main/language/cy/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cy\n"
+"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n"
+
+msgctxt "#30000"
+msgid "ARGUS TV Hostname"
+msgstr "Enw gwesteiwr ARGUS TV"
+
+msgctxt "#30001"
+msgid "ARGUS TV webserver port"
+msgstr "Porth gweinydd gwe ARGUS TV"
+
+msgctxt "#30002"
+msgid "Include Radio"
+msgstr "Cynnwys Radio"
+
+msgctxt "#30003"
+msgid "Connect timeout (s)"
+msgstr "Amser allan cysylltu (e)"
+
+msgctxt "#30004"
+msgid "Windows user account"
+msgstr "Cyfrif defnyddiwr Windows"
+
+msgctxt "#30005"
+msgid "Password"
+msgstr "Cyfrinair"
+
+msgctxt "#30006"
+msgid "Delay after tuning (ms)"
+msgstr "Oedi ar ôl tiwnio (me)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/Makefile.am xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/Makefile.am
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/Makefile.am 2013-12-13 13:17:21.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/Makefile.am 2014-03-04 10:06:12.000000000 +0000
@@ -10,11 +10,11 @@
LIBNAME = libargustv-addon
lib_LTLIBRARIES = libargustv-addon.la
-LIBS = @abs_top_builddir@/lib/jsoncpp/libjsoncpp.la
+LIBS = @abs_top_srcdir@/lib/jsoncpp/libjsoncpp.la
include ../Makefile.include.am
-INCLUDES+=-I$(srcdir)/src -I$(srcdir)/src/lib/filesystem -I@abs_top_srcdir@/lib/jsoncpp/include
+INCLUDES+=-Isrc -Isrc/lib/filesystem -I@abs_top_srcdir@/lib/jsoncpp/include
libargustv_addon_la_SOURCES = src/activerecording.cpp \
src/channel.cpp \
@@ -23,10 +23,10 @@
src/argustvrpc.cpp \
src/guideprogram.cpp \
src/KeepAliveThread.cpp \
+ src/EventsThread.cpp \
src/pvrclient-argustv.cpp \
src/recording.cpp \
src/recordinggroup.cpp \
- src/recordingsummary.cpp \
src/tools.cpp \
src/upcomingrecording.cpp \
src/uri.cpp \
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/project/VS2010Express/pvr.argustv.vcxproj xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/project/VS2010Express/pvr.argustv.vcxproj
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/project/VS2010Express/pvr.argustv.vcxproj 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/project/VS2010Express/pvr.argustv.vcxproj 2014-03-04 10:06:12.000000000 +0000
@@ -84,6 +84,7 @@
+
@@ -92,7 +93,6 @@
-
@@ -104,6 +104,7 @@
+
@@ -112,7 +113,6 @@
-
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/project/VS2010Express/pvr.argustv.vcxproj.filters xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/project/VS2010Express/pvr.argustv.vcxproj.filters
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/project/VS2010Express/pvr.argustv.vcxproj.filters 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/project/VS2010Express/pvr.argustv.vcxproj.filters 2014-03-04 10:06:12.000000000 +0000
@@ -45,9 +45,6 @@
Source Files
-
- Source Files
-
Source Files
@@ -75,6 +72,9 @@
Source Files
+
+ Source Files
+
@@ -101,9 +101,6 @@
Header Files
-
- Header Files
-
Header Files
@@ -131,5 +128,8 @@
Header Files
+
+ Header Files
+
\ No newline at end of file
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/argustvrpc.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/argustvrpc.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/argustvrpc.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/argustvrpc.cpp 2014-05-04 06:40:42.000000000 +0000
@@ -189,44 +189,6 @@
}
/*
- * \brief Retrieve the TV channels that are in the guide
- */
- int RequestGuideChannelList()
- {
- Json::Value root;
- int retval = E_FAILED;
-
- retval = ArgusTVJSONRPC("ArgusTV/Guide/Channels/Television", "", root);
-
- if(retval >= 0)
- {
- if( root.type() == Json::arrayValue)
- {
- int size = root.size();
-
- // parse channel list
- for ( int index =0; index < size; ++index )
- {
- std::string name = root[index]["Name"].asString();
- XBMC->Log(LOG_DEBUG, "Found channel %i: %s\n", index, name.c_str());
- }
- return size;
- }
- else
- {
- XBMC->Log(LOG_DEBUG, "Unknown response format. Expected Json::arrayValue\n");
- return -1;
- }
- }
- else
- {
- XBMC->Log(LOG_DEBUG, "RequestChannelList failed. Return value: %i\n", retval);
- }
-
- return retval;
- }
-
- /*
* \brief Get the logo for a channel
* \param channelGUID GUID of the channel
*/
@@ -261,7 +223,6 @@
char command[512];
snprintf(command, 512, "ArgusTV/Scheduler/ChannelLogo/%s/100/100/false/%d-%02d-%02d", channelGUID.c_str(),
- //snprintf(command, 512, "ArgusTV/Scheduler/ChannelLogo/%s/100/100/false/2011-01-01", channelGUID.c_str(),
modificationtime->tm_year + 1900, modificationtime->tm_mon + 1, modificationtime->tm_mday);
long http_response;
@@ -297,7 +258,7 @@
}
/*
- * \brief Get the list with channel groups from 4TR
+ * \brief Get the list with channel groups from ARGUS
* \param channelType The channel type (Television or Radio)
*/
int RequestChannelGroups(enum ChannelType channelType, Json::Value& response)
@@ -335,7 +296,7 @@
}
/*
- * \brief Get the list with channels for the given channel group from 4TR
+ * \brief Get the list with channels for the given channel group from ARGUS
* \param channelGroupId GUID of the channel group
*/
int RequestChannelGroupMembers(const std::string& channelGroupId, Json::Value& response)
@@ -367,7 +328,7 @@
}
/*
- * \brief Get the list with TV channel groups from 4TR
+ * \brief Get the list with TV channel groups from ARGUS
*/
int RequestTVChannelGroups(Json::Value& response)
{
@@ -375,7 +336,7 @@
}
/*
- * \brief Get the list with Radio channel groups from 4TR
+ * \brief Get the list with Radio channel groups from ARGUS
*/
int RequestRadioChannelGroups(Json::Value& response)
{
@@ -383,7 +344,7 @@
}
/*
- * \brief Get the list with channels from 4TR
+ * \brief Get the list with channels from ARGUS
* \param channelType The channel type (Television or Radio)
*/
int GetChannelList(enum ChannelType channelType, Json::Value& response)
@@ -420,25 +381,6 @@
return retval;
}
-#if FALSE
- /**
- * \brief Fetch the Logo for the given channel id
- * \param channel_id String containing the 4TR channel_id
- * \param filename filename returned here
- */
- int GetChannelLogo(const std::string& channel_id, std::string& filename)
- {
- char command[512];
-
- snprintf(command, 512, "ArgusTV/Scheduler/ChannelLogo/%s/100/100/false/2011-01-01", channel_id.c_str());
-
- filename = _tempnam(NULL, "atvico");
- int retval = ArgusTVRPCToFile(command, "", filename);
-
- return retval;
- }
-#endif
-
/*
* \brief Ping core service.
* \param requestedApiVersion The API version the client needs, pass in Constants.ArgusTVRestApiVersion.
@@ -763,25 +705,25 @@
return retval;
}
- int GetRecordingsForTitleUsingPOSTData(const std::string& title, Json::Value& response)
+ int GetFullRecordingsForTitle(const std::string& title, Json::Value& response)
{
- XBMC->Log(LOG_DEBUG, "GetRecordingsForTitleUsingPOSTData(\"%s\")", title.c_str());
- std::string command = "ArgusTV/Control/GetRecordingsForProgramTitle/Television?includeNonExisting=false";
- std::string arguments = "\"" + title + "\"";
+ XBMC->Log(LOG_DEBUG, "GetFullRecordingsForTitle(\"%s\")", title.c_str());
+ std::string command = "ArgusTV/Control/GetFullRecordings/Television?includeNonExisting=false";
+ Json::Value jsArgument;
+ jsArgument["ScheduleId"] = Json::nullValue;
+ jsArgument["ProgramTitle"] = title;
+ jsArgument["Category"] = Json::nullValue;
+ jsArgument["ChannelId"] = Json::nullValue;
+ Json::FastWriter writer;
+ std::string arguments = writer.write(jsArgument);
int retval = ArgusTV::ArgusTVJSONRPC(command, arguments, response);
if (retval < 0)
{
- XBMC->Log(LOG_NOTICE, "GetRecordingsForTitleUsingPOSTData remote call failed.");
+ XBMC->Log(LOG_NOTICE, "GetFullRecordingsForTitle remote call failed. (%d)", retval);
}
- return retval;
- }
- int GetRecordingsForTitle(const std::string& title, Json::Value& response)
- {
- XBMC->Log(LOG_DEBUG, "GetRecordingsForTitle");
-
- return GetRecordingsForTitleUsingPOSTData(title, response);
+ return retval;
}
int GetRecordingById(const std::string& id, Json::Value& response)
@@ -1119,6 +1061,33 @@
return retval;
}
+ /**
+ * \brief Retrieve an empty schedule from the server
+ */
+ int GetEmptySchedule(Json::Value& response)
+ {
+ int retval = -1;
+ XBMC->Log(LOG_DEBUG, "GetEmptySchedule");
+
+ retval = ArgusTVJSONRPC("ArgusTV/Scheduler/EmptySchedule/0/82", "", response);
+
+ if(retval >= 0)
+ {
+ if( response.type() != Json::objectValue)
+ {
+ XBMC->Log(LOG_DEBUG, "Unknown response format. Expected Json::objectValue\n");
+ return -1;
+ }
+ }
+ else
+ {
+ XBMC->Log(LOG_DEBUG, "GetEmptySchedule failed. Return value: %i\n", retval);
+ }
+
+ return retval;
+ }
+
+
/**
* \brief Add a xbmc timer as a one time schedule
*/
@@ -1130,26 +1099,51 @@
struct tm* convert = localtime(&starttime);
struct tm tm_start = *convert;
- // Format: ArgusTV/Scheduler/SaveSchedule
- // argument: {"ChannelType":0,"IsActive":true,"IsOneTime":true,"KeepUntilMode":0,"KeepUntilValue":null,
- // "LastModifiedTime":"\/Date(1297889326000+0100)\/","Name":"Astro TV","PostRecordSeconds":null,
- // "PreRecordSeconds":null,"ProcessingCommands":[],"RecordingFileFormatId":null,
- // "Rules":[{"Arguments":["Astro TV"],"Type":"TitleEquals"},{"Arguments":["2011-02-17T00:00:00+01:00"],"Type":"OnDate"},{"Arguments":["00:45:00"],"Type":"AroundTime"},{"Arguments":["ed49a4ef-5777-40c4-80b8-715e4c87f1a6"],"Type":"Channels"}],
- // "ScheduleId":"00000000-0000-0000-0000-000000000000","SchedulePriority":0,"ScheduleType":82,"Version":0}
+ // Get empty schedule from the server
+ Json::Value newSchedule;
+ if (ArgusTV::GetEmptySchedule(newSchedule) < 0) return retval;
- time_t now = time(NULL);
- std::string modifiedtime = TimeTToWCFDate(mktime(localtime(&now)));
+ // Fill relevant members
CStdString modifiedtitle = title;
modifiedtitle.Replace("\"", "\\\"");
- char arguments[1024];
- snprintf( arguments, sizeof(arguments),
- "{\"ChannelType\":0,\"IsActive\":true,\"IsOneTime\":true,\"KeepUntilMode\":\"%i\",\"KeepUntilValue\":\"%i\",\"LastModifiedTime\":\"%s\",\"Name\":\"%s\",\"PostRecordSeconds\":%i,\"PreRecordSeconds\":%i,\"ProcessingCommands\":[],\"RecordingFileFormatId\":null,\"Rules\":[{\"Arguments\":[\"%s\"],\"Type\":\"TitleEquals\"},{\"Arguments\":[\"%i-%02i-%02iT00:00:00\"],\"Type\":\"OnDate\"},{\"Arguments\":[\"%02i:%02i:%02i\"],\"Type\":\"AroundTime\"},{\"Arguments\":[\"%s\"],\"Type\":\"Channels\"}],\"ScheduleId\":\"00000000-0000-0000-0000-000000000000\",\"SchedulePriority\":0,\"ScheduleType\":82,\"Version\":0}",
- lifetimeToKeepUntilMode(lifetime), lifetimeToKeepUntilValue(lifetime), modifiedtime.c_str(), modifiedtitle.c_str(), postrecordseconds, prerecordseconds, modifiedtitle.c_str(),
- tm_start.tm_year + 1900, tm_start.tm_mon + 1, tm_start.tm_mday,
- tm_start.tm_hour, tm_start.tm_min, tm_start.tm_sec,
- channelid.c_str());
- retval = ArgusTVJSONRPC("ArgusTV/Scheduler/SaveSchedule", arguments, response);
+ newSchedule["KeepUntilMode"] = Json::Value(lifetimeToKeepUntilMode(lifetime));
+ newSchedule["KeepUntilValue"] = Json::Value(lifetimeToKeepUntilValue(lifetime));
+ newSchedule["Name"] = Json::Value(modifiedtitle.c_str());
+ newSchedule["PostRecordSeconds"] = Json::Value(postrecordseconds);
+ newSchedule["PreRecordSeconds"] = Json::Value(prerecordseconds);
+
+ Json::Value rule(Json::objectValue);
+ rule["Arguments"] = Json::arrayValue;
+ rule["Arguments"].append(Json::Value(modifiedtitle.c_str()));
+ rule["Type"] = Json::Value("TitleEquals");
+ newSchedule["Rules"].append(rule);
+
+ char formatbuffer[256];
+ rule = Json::objectValue;
+ rule["Arguments"] = Json::arrayValue;
+ snprintf(formatbuffer, sizeof(formatbuffer), "%i-%02i-%02iT00:00:00", tm_start.tm_year + 1900, tm_start.tm_mon + 1, tm_start.tm_mday);
+ rule["Arguments"].append(Json::Value(formatbuffer));
+ rule["Type"] = Json::Value("OnDate");
+ newSchedule["Rules"].append(rule);
+
+ rule = Json::objectValue;
+ rule["Arguments"] = Json::arrayValue;
+ snprintf(formatbuffer, sizeof(formatbuffer), "%02i:%02i:%02i", tm_start.tm_hour, tm_start.tm_min, tm_start.tm_sec);
+ rule["Arguments"].append(Json::Value(formatbuffer));
+ rule["Type"] = Json::Value("AroundTime");
+ newSchedule["Rules"].append(rule);
+
+ rule = Json::objectValue;
+ rule["Arguments"] = Json::arrayValue;
+ rule["Arguments"].append(Json::Value(channelid.c_str()));
+ rule["Type"] = Json::Value("Channels");
+ newSchedule["Rules"].append(rule);
+
+ Json::FastWriter writer;
+ std::string tmparguments = writer.write(newSchedule);
+
+ retval = ArgusTVJSONRPC("ArgusTV/Scheduler/SaveSchedule", tmparguments.c_str(), response);
if(retval >= 0)
{
@@ -1184,26 +1178,44 @@
recordingduration /= 60;
int duration_hrs = recordingduration;
- // Format: ArgusTV/Scheduler/SaveSchedule
- // argument: {"ChannelType":0,"IsActive":true,"IsOneTime":true,"KeepUntilMode":0,"KeepUntilValue":null,
- // "LastModifiedTime":"\/Date(1307645182000+0100)\/","Name":"XBMC (manual) - blup","PostRecordSeconds":600,
- // "PreRecordSeconds":120,"ProcessingCommands":[],"RecordingFileFormatId":null,
- // "Rules":[{"Arguments":["2011-06-11T22:10:00", "01:13:00"],"Type":"ManualSchedule"},{"Arguments":["6a14caaf-5e39-4750-b7b7-eae8c741c094"],"Type":"Channels"}],
- // "ScheduleId":"00000000-0000-0000-0000-000000000000","SchedulePriority":0,"ScheduleType":82,"Version":0}
+ // Get empty schedule from the server
+ Json::Value newSchedule;
+ if (ArgusTV::GetEmptySchedule(newSchedule) < 0) return retval;
- time_t now = time(NULL);
- std::string modifiedtime = TimeTToWCFDate(mktime(localtime(&now)));
- char arguments[1024];
- snprintf( arguments, sizeof(arguments),
- "{\"ChannelType\":0,\"IsActive\":true,\"IsOneTime\":true,\"KeepUntilMode\":\"%i\",\"KeepUntilValue\":\"%i\",\"LastModifiedTime\":\"%s\",\"Name\":\"%s (manual)\",\"PostRecordSeconds\":%i,\"PreRecordSeconds\":%i,\"ProcessingCommands\":[],\"RecordingFileFormatId\":null,"
- "\"Rules\":[{\"Arguments\":[\"%i-%02i-%02iT%02i:%02i:%02i\", \"%02i:%02i:%02i\"],\"Type\":\"ManualSchedule\"},{\"Arguments\":[\"%s\"],\"Type\":\"Channels\"}],\"ScheduleId\":\"00000000-0000-0000-0000-000000000000\",\"SchedulePriority\":0,\"ScheduleType\":82,\"Version\":0}",
- lifetimeToKeepUntilMode(lifetime), lifetimeToKeepUntilValue(lifetime), modifiedtime.c_str(), title.c_str(), postrecordseconds, prerecordseconds,
+ // Fill relevant members
+ CStdString modifiedtitle = title;
+ modifiedtitle.Replace("\"", "\\\"");
+
+ newSchedule["IsOneTime"] = Json::Value(true);
+ newSchedule["KeepUntilMode"] = Json::Value(lifetimeToKeepUntilMode(lifetime));
+ newSchedule["KeepUntilValue"] = Json::Value(lifetimeToKeepUntilValue(lifetime));
+ newSchedule["Name"] = Json::Value(modifiedtitle.c_str());
+ newSchedule["PostRecordSeconds"] = Json::Value(postrecordseconds);
+ newSchedule["PreRecordSeconds"] = Json::Value(prerecordseconds);
+
+ Json::Value rule(Json::objectValue);
+ char formatbuffer[256];
+ rule["Arguments"] = Json::arrayValue;
+ snprintf(formatbuffer, sizeof(formatbuffer), "%i-%02i-%02iT%02i:%02i:%02i",
tm_start.tm_year + 1900, tm_start.tm_mon + 1, tm_start.tm_mday,
- tm_start.tm_hour, tm_start.tm_min, tm_start.tm_sec,
- duration_hrs, duration_min, duration_sec,
- channelid.c_str());
+ tm_start.tm_hour, tm_start.tm_min, tm_start.tm_sec);
+ rule["Arguments"].append(Json::Value(formatbuffer));
+ snprintf(formatbuffer, sizeof(formatbuffer), "%02i:%02i:%02i",
+ duration_hrs, duration_min, duration_sec);
+ rule["Arguments"].append(Json::Value(formatbuffer));
+ rule["Type"] = Json::Value("ManualSchedule");
+ newSchedule["Rules"].append(rule);
+
+ rule = Json::objectValue;
+ rule["Arguments"] = Json::arrayValue;
+ rule["Arguments"].append(Json::Value(channelid.c_str()));
+ rule["Type"] = Json::Value("Channels");
+ newSchedule["Rules"].append(rule);
+
+ Json::FastWriter writer;
+ std::string tmparguments = writer.write(newSchedule);
- retval = ArgusTVJSONRPC("ArgusTV/Scheduler/SaveSchedule", arguments, response);
+ retval = ArgusTVJSONRPC("ArgusTV/Scheduler/SaveSchedule", tmparguments, response);
if(retval >= 0)
{
@@ -1280,8 +1292,118 @@
return retval;
}
+ /*
+ * \brief Subscribe to ARGUS TV service events
+ */
+ int SubscribeServiceEvents(int eventGroups, Json::Value& response)
+ {
+ XBMC->Log(LOG_DEBUG, "SubscribeServiceEvents");
+ int retval = E_FAILED;
+
+ char command[256];
+ snprintf(command, 256, "ArgusTV/Core/SubscribeServiceEvents/%d" , eventGroups);
+ retval = ArgusTVJSONRPC(command, "", response);
+
+ if(retval >= 0)
+ {
+ if (response.type() != Json::stringValue)
+ {
+ retval = E_FAILED;
+ XBMC->Log(LOG_NOTICE, "SubscribeServiceEvents did not return a Json::stringValue [%d].", response.type());
+ }
+ }
+ else
+ {
+ XBMC->Log(LOG_ERROR, "SubscribeServiceEvents remote call failed.");
+ }
+ return retval;
+ }
+
+ /*
+ * \brief Unsubscribe from ARGUS TV service events
+ */
+ int UnsubscribeServiceEvents(const std::string& monitorId)
+ {
+ XBMC->Log(LOG_DEBUG, "UnsubscribeServiceEvents from %s", monitorId.c_str());
+ int retval = E_FAILED;
+
+ char command[256];
+ snprintf(command, 256, "ArgusTV/Core/UnsubscribeServiceEvents/%s" , monitorId.c_str());
+ std::string dummy;
+ retval = ArgusTVRPC(command, "", dummy);
+
+ if (retval < 0)
+ {
+ XBMC->Log(LOG_ERROR, "UnsubscribeServiceEvents remote call failed.");
+ }
+ return retval;
+ }
+
+ /*
+ * \brief Retrieve the ARGUS TV service events
+ */
+ int GetServiceEvents(const std::string& monitorId, Json::Value& response)
+ {
+ XBMC->Log(LOG_DEBUG, "GetServiceEvents");
+ int retval = E_FAILED;
+
+ char command[256];
+ snprintf(command, 256, "ArgusTV/Core/GetServiceEvents/%s" , monitorId.c_str());
+ retval = ArgusTVJSONRPC(command, "", response);
+
+ if(retval >= 0)
+ {
+ if (response.type() != Json::objectValue)
+ {
+ retval = E_FAILED;
+ XBMC->Log(LOG_NOTICE, "GetServiceEvents did not return a Json::objectValue [%d].", response.type());
+ }
+ }
+ else
+ {
+ XBMC->Log(LOG_ERROR, "GetServiceEvents remote call failed.");
+ }
+ return retval;
+ }
+
+
+ /**
+ * \brief Get the upcoming recordings for a given schedule
+ */
+ int GetUpcomingRecordingsForSchedule(const std::string& scheduleid, Json::Value& response)
+ {
+ int retval = -1;
+
+ XBMC->Log(LOG_DEBUG, "GetUpcomingRecordingsForSchedule");
+
+ char command[256];
+ snprintf(command, 256, "ArgusTV/Control/UpcomingRecordingsForSchedule/%s?includeCancelled=true" , scheduleid.c_str());
+
+ retval = ArgusTVJSONRPC(command, "", response);
+
+ if (retval < 0)
+ {
+ XBMC->Log(LOG_DEBUG, "GetUpcomingRecordingsForSchedule failed. Return value: %i\n", retval);
+ }
+ else
+ {
+ if( response.type() == Json::arrayValue)
+ {
+ int size = response.size();
+ return size;
+ }
+ else
+ {
+ XBMC->Log(LOG_DEBUG, "Unknown response format %d. Expected Json::arrayValue\n", response.type());
+ return -1;
+ }
+ }
+
+ return retval;
+ }
+
/**
- * \brief Convert a XBMC Lifetime value to the 4TR keepUntilMode setting
+ * \brief Convert a XBMC Lifetime value to the ARGUS keepUntilMode setting
* \param lifetime the XBMC lifetime value (in days)
*/
int lifetimeToKeepUntilMode(int lifetime)
@@ -1296,7 +1418,7 @@
}
/**
- * \brief Convert a XBMC Lifetime value to the 4TR keepUntilValue setting
+ * \brief Convert a XBMC Lifetime value to the ARGUS keepUntilValue setting
* \param lifetime the XBMC lifetime value (in days)
*/
int lifetimeToKeepUntilValue(int lifetime)
@@ -1365,56 +1487,6 @@
return wcfdate;
}
- // transform [\\nascat\qrecordings\NCIS\2012-05-15_20-30_SBS 6_NCIS.ts]
- // into [smb://user:password@nascat/qrecordings/NCIS/2012-05-15_20-30_SBS 6_NCIS.ts]
- std::string ToCIFS(std::string& UNCName)
- {
- std::string CIFSname = UNCName;
- std::string SMBPrefix = "smb://";
- if (g_szUser.length() > 0)
- {
- SMBPrefix += g_szUser;
- if (g_szPass.length() > 0)
- {
- SMBPrefix += ":" + g_szPass;
- }
- }
- else
- {
- SMBPrefix += "Guest";
- }
- SMBPrefix += "@";
- size_t found;
- while ((found = CIFSname.find("\\")) != std::string::npos)
- {
- CIFSname.replace(found, 1, "/");
- }
- CIFSname.erase(0,2);
- CIFSname.insert(0, SMBPrefix);
- return CIFSname;
- }
-
-
- // transform [smb://user:password@nascat/qrecordings/NCIS/2012-05-15_20-30_SBS 6_NCIS.ts]
- // into [\\nascat\qrecordings\NCIS\2012-05-15_20-30_SBS 6_NCIS.ts]
- std::string ToUNC(std::string& CIFSName)
- {
- std::string UNCname = CIFSName;
-
- UNCname.erase(0,6);
- size_t found = UNCname.find("@");
- if (found != std::string::npos) {
- UNCname.erase(0, found+1);
- }
-
- while ((found = UNCname.find("/")) != std::string::npos)
- {
- UNCname.replace(found, 1, "\\");
- }
- UNCname.insert(0, "\\\\");
- return UNCname;
- }
-
}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/argustvrpc.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/argustvrpc.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/argustvrpc.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/argustvrpc.h 2014-05-04 06:40:42.000000000 +0000
@@ -21,9 +21,9 @@
#include
#include
-#define ATV_2_0_1 (52)
-#define ATV_REST_MINIMUM_API_VERSION ATV_2_0_1
-#define ATV_REST_MAXIMUM_API_VERSION ATV_2_0_1
+#define ATV_2_2_0 (60)
+#define ATV_REST_MINIMUM_API_VERSION ATV_2_2_0
+#define ATV_REST_MAXIMUM_API_VERSION ATV_2_2_0
#define E_SUCCESS 0
#define E_FAILED -1
@@ -83,13 +83,21 @@
NotSupported = 99
};
+ enum ServiceEventGroups {
+ SystemEvents = 0x01,
+ GuideEvents = 0x02,
+ ScheduleEvents = 0x04,
+ RecordingEvents = 0x08,
+ AllEvents = 0x0F
+ };
+
/**
* \brief Do some internal housekeeping at the start
*/
void Initialize(void);
/**
- * \brief Send a REST command to 4TR and return the JSON response string
+ * \brief Send a REST command to ARGUS and return the JSON response string
* \param command The command string url (starting from "ArgusTV/")
* \param json_response Reference to a std::string used to store the json response string
* \return 0 on ok, -1 on a failure
@@ -97,7 +105,7 @@
int ArgusTVRPC(const std::string& command, const std::string& arguments, std::string& json_response);
/**
- * \brief Send a REST command to 4TR and return the JSON response
+ * \brief Send a REST command to ARGUS and return the JSON response
* \param command The command string url (starting from "ArgusTV/")
* \param json_response Reference to a Json::Value used to store the parsed Json value
* \return 0 on ok, -1 on a failure
@@ -105,7 +113,7 @@
int ArgusTVJSONRPC(const std::string& command, const std::string& arguments, Json::Value& json_response);
/**
- * \brief Send a REST command to 4TR, write the response to a file and return the filename
+ * \brief Send a REST command to ARGUS, write the response to a file and return the filename
* \param command The command string url (starting from "ArgusTV/")
* \param newfilename Reference to a std::string used to store the output file name
* \param htt_presponse Reference to a long used to store the HTTP response code
@@ -182,7 +190,7 @@
/**
* \brief Fetch the EPG data for the given guidechannel id
- * \param guidechannel_id String containing the 4TR guidechannel_id (not the channel_id)
+ * \param guidechannel_id String containing the ARGUS guidechannel_id (not the channel_id)
* \param epg_start Start from this date
* \param epg_stop Until this date
*/
@@ -195,11 +203,11 @@
int GetRecordingGroupByTitle(Json::Value& response);
/**
- * \brief Fetch the data for all recordings for a given title
+ * \brief Fetch the detailed data for all recordings for a given title
* \param title Program title of recording
* \param response Reference to a std::string used to store the json response string
*/
- int GetRecordingsForTitle(const std::string& title, Json::Value& response);
+ int GetFullRecordingsForTitle(const std::string& title, Json::Value& response);
/**
* \brief Fetch the detailed information of a recorded show
@@ -289,6 +297,11 @@
int CancelUpcomingProgram(const std::string& scheduleid, const std::string& channelid, const time_t starttime, const std::string& upcomingprogramid);
/**
+ * \brief Retrieve an empty schedule from the server
+ */
+ int GetEmptySchedule(Json::Value& response);
+
+ /**
* \brief Add a xbmc timer as a one time schedule
*/
int AddOneTimeSchedule(const std::string& channelid, const time_t starttime, const std::string& title, int prerecordseconds, int postrecordseconds, int lifetime, Json::Value& response);
@@ -308,18 +321,23 @@
*/
int GetUpcomingProgramsForSchedule(const Json::Value& schedule, Json::Value& response);
+ /**
+ * \brief Get the upcoming recordings for a given schedule
+ */
+ int GetUpcomingRecordingsForSchedule(const std::string& scheduleid, Json::Value& response);
+
/*
- * \brief Get the list with TV channel groups from 4TR
+ * \brief Get the list with TV channel groups from ARGUS
*/
int RequestTVChannelGroups(Json::Value& response);
- /*
- * \brief Get the list with Radio channel groups from 4TR
+ /*
+ * \brief Get the list with Radio channel groups from ARGUS
*/
int RequestRadioChannelGroups(Json::Value& response);
/*
- * \brief Get the list with channels for the given channel group from 4TR
+ * \brief Get the list with channels for the given channel group from ARGUS
* \param channelGroupId GUID of the channel group
*/
int RequestChannelGroupMembers(const std::string& channelGroupId, Json::Value& response);
@@ -331,19 +349,32 @@
std::string GetChannelLogo(const std::string& channelGUID);
/*
- * \brief Convert a XBMC Lifetime value to the 4TR keepUntilMode setting
+ * \brief Subscribe to ARGUS TV service events
+ */
+ int SubscribeServiceEvents(int eventGroups, Json::Value& response);
+
+ /*
+ * \brief Unsubscribe from ARGUS TV service events
+ */
+ int UnsubscribeServiceEvents(const std::string& monitorId);
+
+ /*
+ * \brief Retrieve the ARGUS TV service events
+ */
+ int GetServiceEvents(const std::string& monitorId, Json::Value& response);
+
+ /*
+ * \brief Convert a XBMC Lifetime value to the ARGUS keepUntilMode setting
* \param lifetime the XBMC lifetime value (in days)
*/
int lifetimeToKeepUntilMode(int lifetime);
/*
- * \brief Convert a XBMC Lifetime value to the 4TR keepUntilValue setting
+ * \brief Convert a XBMC Lifetime value to the ARGUS keepUntilValue setting
* \param lifetime the XBMC lifetime value (in days)
*/
int lifetimeToKeepUntilValue(int lifetime);
time_t WCFDateToTimeT(const std::string& wcfdate, int& offset);
std::string TimeTToWCFDate(const time_t thetime);
- std::string ToCIFS(std::string& UNCName);
- std::string ToUNC(std::string& CIFSName);
} //namespace ArgusTV
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/channel.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/channel.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/channel.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/channel.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -44,18 +44,9 @@
name = data["DisplayName"].asString();
type = (ArgusTV::ChannelType) data["ChannelType"].asInt();
lcn = data["LogicalChannelNumber"].asInt();
- // Useless for XBMC: a unique id as 128 bit GUID string. XBMC accepts only integers here...
+ id = data["Id"].asInt();
guid = data["ChannelId"].asString();
guidechannelid = data["GuideChannelId"].asString();
- // Not needed...
- //["BroadcastStart"] //string
- //["BroadcastStop"] //string
- //["DefaultPostRecordSeconds"] //int
- //["DefaultPreRecordSeconds"] //int
- //["Sequence"] //int =0
- //["Version"] //int =0
- //["VisibleInGuide"] //boolean =true
-
return true;
}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/channel.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/channel.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/channel.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/channel.h 2014-01-04 10:28:12.000000000 +0000
@@ -44,6 +44,5 @@
int LCN(void) const { return lcn; }
ArgusTV::ChannelType Type(void) const { return type; }
int ID(void) const { return id; }
- void SetID(int new_id) { id = new_id; }
const std::string& GuideChannelID(void) const { return guidechannelid; };
};
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/client.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/client.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/client.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/client.cpp 2014-01-04 10:28:19.000000000 +0000
@@ -285,6 +285,11 @@
}
+void ADDON_Announce(const char *flag, const char *sender, const char *message, const void *data)
+{
+ (void) flag; (void) sender; (void) message; (void) data;
+}
+
/***********************************************************
* PVR Client AddOn specific public library functions
***********************************************************/
@@ -301,6 +306,18 @@
return strMinApiVersion;
}
+const char* GetGUIAPIVersion(void)
+{
+ static const char *strGuiApiVersion = XBMC_GUI_API_VERSION;
+ return strGuiApiVersion;
+}
+
+const char* GetMininumGUIAPIVersion(void)
+{
+ static const char *strMinGuiApiVersion = XBMC_GUI_MIN_API_VERSION;
+ return strMinGuiApiVersion;
+}
+
//-- GetAddonCapabilities -----------------------------------------------------
// Tell XBMC our requirements
//-----------------------------------------------------------------------------
@@ -372,9 +389,10 @@
return PVR_ERROR_NOT_IMPLEMENTED;
}
-PVR_ERROR CallMenuHook(const PVR_MENUHOOK &menuhook)
+PVR_ERROR CallMenuHook(const PVR_MENUHOOK &menuhook, const PVR_MENUHOOK_DATA &item)
{
NOTUSED(menuhook);
+ NOTUSED(item);
return PVR_ERROR_NOT_IMPLEMENTED;
}
@@ -627,7 +645,11 @@
void DemuxAbort(void) {}
void DemuxReset(void) {}
void DemuxFlush(void) {}
+PVR_ERROR GetRecordingEdl(const PVR_RECORDING&, PVR_EDL_ENTRY[], int*) { return PVR_ERROR_NOT_IMPLEMENTED; };
unsigned int GetChannelSwitchDelay(void) { return 0; }
bool SeekTime(int,bool,double*) { return false; }
void SetSpeed(int) {};
+time_t GetPlayingTime() { return 0; }
+time_t GetBufferTimeStart() { return 0; }
+time_t GetBufferTimeEnd() { return 0; }
} //end extern "C"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/client.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/client.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/client.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/client.h 2014-01-04 10:28:12.000000000 +0000
@@ -26,6 +26,7 @@
#include "platform/util/StdString.h"
#include "libXBMC_addon.h"
#include "libXBMC_pvr.h"
+#include "libXBMC_gui.h"
#define DEFAULT_HOST "127.0.0.1"
#define DEFAULT_PORT 49943
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/epg.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/epg.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/epg.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/epg.h 2014-01-04 10:28:12.000000000 +0000
@@ -23,6 +23,7 @@
#define __EPG_H
#include
+#include "xbmc_addon_types.h"
#include "libXBMC_addon.h"
#include "libXBMC_pvr.h"
#include
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/EventsThread.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/EventsThread.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/EventsThread.cpp 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/EventsThread.cpp 2014-03-04 10:06:12.000000000 +0000
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2014 Fred Hoogduin
+ *
+ * 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" //for XBMC->Log
+#include "argustvrpc.h"
+#include "EventsThread.h"
+
+using namespace ADDON;
+
+CEventsThread::CEventsThread(void)
+{
+ XBMC->Log(LOG_DEBUG, "CEventsThread:: constructor");
+}
+
+
+CEventsThread::~CEventsThread(void)
+{
+ XBMC->Log(LOG_DEBUG, "CEventsThread:: destructor");
+ if (m_subscribed)
+ {
+ int retval = ArgusTV::UnsubscribeServiceEvents(m_monitorId);
+ if (retval < 0)
+ {
+ XBMC->Log(LOG_NOTICE, "CEventsThread:: unsubscribe from events failed");
+ }
+ }
+}
+
+void CEventsThread::Connect()
+{
+ XBMC->Log(LOG_DEBUG, "CEventsThread::Connect");
+ // Subscribe to service events
+ Json::Value response;
+ int retval = ArgusTV::SubscribeServiceEvents(ArgusTV::AllEvents, response);
+ if (retval >= 0)
+ {
+ m_monitorId = response.asString();
+ m_subscribed = true;
+ XBMC->Log(LOG_DEBUG, "CEventsThread:: monitorId = %s", m_monitorId.c_str());
+ }
+ else
+ {
+ m_subscribed = false;
+ XBMC->Log(LOG_NOTICE, "CEventsThread:: subscribe to events failed");
+ }
+}
+
+void *CEventsThread::Process()
+{
+ XBMC->Log(LOG_DEBUG, "CEventsThread:: thread started");
+ while (!IsStopped() && m_subscribed)
+ {
+ // Get service events
+ Json::Value response;
+ int retval = ArgusTV::GetServiceEvents(m_monitorId, response);
+ if (retval >= 0)
+ {
+ if (response["Expired"].asBool())
+ {
+ // refresh subscription
+ Connect();
+ }
+ else
+ {
+ // Process service events
+ Json::Value events = response["Events"];
+ if (events.size() > 0u) HandleEvents(events);
+ }
+ }
+ // The new PLATFORM:: thread library has a problem with stopping a thread that is doing a long sleep
+ for (int i = 0; i < 100; i++)
+ {
+ if (Sleep(100)) break;
+ }
+ }
+ XBMC->Log(LOG_DEBUG, "CEventsThread:: thread stopped");
+ return NULL;
+}
+
+void CEventsThread::HandleEvents(Json::Value events)
+{
+ XBMC->Log(LOG_DEBUG, "CEventsThread::HandleEvents");
+ int size = events.size();
+ bool mustUpdateTimers = false;
+ bool mustUpdateRecordings = false;
+ // Aggregate events
+ for (int i = 0; i < size; i++)
+ {
+ Json::Value event = events[i];
+ std::string eventName = event["Name"].asString();
+ XBMC->Log(LOG_DEBUG, "CEventsThread:: ARGUS TV reports event %s", eventName.c_str());
+ if (eventName == "UpcomingRecordingsChanged")
+ {
+ XBMC->Log(LOG_DEBUG, "Timers changed");
+ mustUpdateTimers = true;
+ }
+ else if (eventName == "RecordingStarted" || eventName == "RecordingEnded")
+ {
+ XBMC->Log(LOG_DEBUG, "Recordings changed");
+ mustUpdateRecordings = true;
+ }
+ }
+ // Handle aggregated events
+ if (mustUpdateTimers)
+ {
+ XBMC->Log(LOG_DEBUG, "CEventsThread:: Timers update triggered");
+ PVR->TriggerTimerUpdate();
+ }
+ if (mustUpdateRecordings)
+ {
+ XBMC->Log(LOG_DEBUG, "CEventsThread:: Recordings update triggered");
+ PVR->TriggerRecordingUpdate();
+ }
+}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/EventsThread.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/EventsThread.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/EventsThread.h 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/EventsThread.h 2014-03-04 10:06:12.000000000 +0000
@@ -0,0 +1,38 @@
+#pragma once
+/*
+ * Copyright (C) 2014 Fred Hoogduin
+ *
+ * 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 "platform/threads/threads.h"
+
+class CEventsThread : public PLATFORM::CThread
+{
+public:
+ CEventsThread(void);
+ ~CEventsThread(void);
+ void Connect(void);
+private:
+ virtual void *Process(void);
+
+ void HandleEvents(Json::Value events);
+
+ bool m_subscribed;
+ std::string m_monitorId;
+};
+
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/lib/tsreader/MultiFileReader.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/lib/tsreader/MultiFileReader.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/lib/tsreader/MultiFileReader.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/lib/tsreader/MultiFileReader.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -91,6 +91,30 @@
//
long MultiFileReader::OpenFile()
{
+ char * bufferfilename;
+ m_TSBufferFile.GetFileName(&bufferfilename);
+
+ struct __stat64 stat;
+ if (XBMC->StatFile(bufferfilename, &stat) != 0)
+ {
+ XBMC->Log(LOG_ERROR, "MultiFileReader: can not get stat from buffer file %s.", bufferfilename);
+ return S_FALSE;
+ }
+
+ int64_t fileLength = stat.st_size;
+ XBMC->Log(LOG_DEBUG, "MultiFileReader: buffer file %s, stat.st_size %ld.", bufferfilename, fileLength);
+
+ int retryCount = 0;
+ if (fileLength == 0) do
+ {
+ retryCount++;
+ XBMC->Log(LOG_DEBUG, "MultiFileReader: buffer file has zero length, closing, waiting 500 ms and re-opening. Try %d.", retryCount);
+ usleep(500000);
+ XBMC->StatFile(bufferfilename, &stat);
+ fileLength = stat.st_size;
+ } while (fileLength == 0 && retryCount < 20);
+ XBMC->Log(LOG_DEBUG, "MultiFileReader: buffer file %s, after %d retries stat.st_size returns %ld.", bufferfilename, retryCount, fileLength);
+
long hr = m_TSBufferFile.OpenFile();
if (RefreshTSBufferFile() == S_FALSE)
@@ -451,7 +475,7 @@
m_TSBufferFile.GetFileName(&filename);
sFilename = filename;
- pos = sFilename.find_last_of(PATH_SEPARATOR_CHAR);
+ pos = sFilename.find_last_of('/');
path = sFilename.substr(0, pos+1);
//name3 = filename1.substr(pos+1);
@@ -589,65 +613,16 @@
long MultiFileReader::GetFileLength(const char* pFilename, int64_t &length)
{
-#if defined(TARGET_WINDOWS)
- //USES_CONVERSION;
-
length = 0;
-
- // Try to open the file
- CStdStringW strWFile = UTF8Util::ConvertUTF8ToUTF16(pFilename);
- HANDLE hFile = ::CreateFileW(strWFile, // The filename
- (DWORD) GENERIC_READ, // File access
- (DWORD) (FILE_SHARE_READ |
- FILE_SHARE_WRITE), // Share access
- NULL, // Security
- (DWORD) OPEN_EXISTING, // Open flags
- (DWORD) 0, // More flags
- NULL); // Template
- if (hFile != INVALID_HANDLE_VALUE)
- {
- LARGE_INTEGER li;
- li.QuadPart = 0;
- li.LowPart = ::SetFilePointer(hFile, 0, &li.HighPart, FILE_END);
- ::CloseHandle(hFile);
-
- length = li.QuadPart;
- }
- else
+ struct __stat64 stat;
+ if (XBMC->StatFile(pFilename, &stat) != 0)
{
- //wchar_t msg[MAX_PATH];
- DWORD dwErr = GetLastError();
- //swprintf((LPWSTR)&msg, L"Failed to open file %s : 0x%x\n", pFilename, dwErr);
- //::OutputDebugString(W2T((LPWSTR)&msg));
- XBMC->Log(LOG_ERROR, "Failed to open file %s : 0x%x\n", pFilename, dwErr);
- XBMC->QueueNotification(QUEUE_ERROR, "Failed to open file %s", pFilename);
- return HRESULT_FROM_WIN32(dwErr);
+ XBMC->Log(LOG_ERROR, "MultiFileReader::GetFileLength: can not get stat from file %s.", pFilename);
+ return S_FALSE;
}
- return S_OK;
-#elif defined(TARGET_LINUX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD)
- //USES_CONVERSION;
- length = 0;
-
- // Try to open the file
- void* hFile;
- if (((hFile = XBMC->OpenFile(pFilename, 0)) != NULL))
- {
- length = XBMC->GetFileLength(hFile);
- XBMC->CloseFile(hFile);
- }
- else
- {
- XBMC->Log(LOG_ERROR, "Failed to open file %s : 0x%x(%s)\n", pFilename, errno, strerror(errno));
- XBMC->QueueNotification(QUEUE_ERROR, "Failed to open file %s", pFilename);
- return S_FALSE;
- }
- XBMC->Log(LOG_DEBUG, "GetFileLength(%s) == %lli.\n", pFilename, length);
+ length = stat.st_size;
return S_OK;
-#else
-#error FIXME: Add MultiFileReader::GetFileLenght implementation for your OS.
- return S_FALSE;
-#endif
}
int64_t MultiFileReader::GetFileSize()
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/pvrclient-argustv.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/pvrclient-argustv.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/pvrclient-argustv.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/pvrclient-argustv.cpp 2014-05-04 06:40:42.000000000 +0000
@@ -1,4 +1,6 @@
/*
+ * Copyright (C) 2014 Fred Hoogduin
+ * based on original work
* Copyright (C) 2010 Marcel Groothuis
*
* This program is free software: you can redistribute it and/or modify
@@ -22,7 +24,6 @@
#include "activerecording.h"
#include "upcomingrecording.h"
#include "recordinggroup.h"
-#include "recordingsummary.h"
#include "recording.h"
#include "epg.h"
#include "utils.h"
@@ -36,11 +37,11 @@
using namespace std;
using namespace ADDON;
-#if !defined(TARGET_WINDOWS)
using namespace PLATFORM;
-#endif
#define SIGNALQUALITY_INTERVAL 10
+#define MAXLIFETIME 99 //Based on VDR addon and VDR documentation. 99=Keep forever, 0=can be deleted at any time, 1..98=days to keep
+
/************************************************************/
/** Class interface */
@@ -53,9 +54,12 @@
m_BackendUTCoffset = 0;
m_BackendTime = 0;
m_tsreader = NULL;
- m_channel_id_offset = 0;
m_epg_id_offset = 0;
m_iCurrentChannel = -1;
+ m_keepalive = new CKeepAliveThread();
+ m_eventmonitor = new CEventsThread();
+ m_TVChannels.clear();
+ m_RadioChannels.clear();
// due to lack of static constructors, we initialize manually
ArgusTV::Initialize();
#if defined(ATV_DUMPTS)
@@ -72,6 +76,11 @@
{
CloseLiveStream();
}
+ delete m_keepalive;
+ delete m_eventmonitor;
+ // Free allocated memory for Channels
+ FreeChannels(m_TVChannels);
+ FreeChannels(m_RadioChannels);
}
@@ -118,7 +127,6 @@
usleep(1000000);
if (attemps > 3)
{
- XBMC->QueueNotification(QUEUE_ERROR, "No connection to Argus TV server");
return false;
}
}
@@ -131,6 +139,15 @@
// XBMC->QueueNotification(QUEUE_ERROR, "Share errors: see xbmc.log");
// }
+ // Start service events monitor
+ m_eventmonitor->Connect();
+ if (!m_eventmonitor->IsRunning())
+ {
+ if(!m_eventmonitor->CreateThread())
+ {
+ XBMC->Log(LOG_ERROR, "Start service monitor thread failed.");
+ }
+ }
m_bConnected = true;
return true;
}
@@ -141,6 +158,15 @@
XBMC->Log(LOG_INFO, "Disconnect");
+ // Stop service events monitor
+ if (m_eventmonitor->IsRunning())
+ {
+ if (!m_eventmonitor->StopThread())
+ {
+ XBMC->Log(LOG_ERROR, "Stop service monitor thread failed.");
+ }
+ }
+
if (m_bTimeShiftStarted)
{
//TODO: tell ArgusTV that it should stop streaming
@@ -182,64 +208,8 @@
bool isAccessibleByATV = accesibleshare["ShareAccessible"].asBool();
bool isAccessibleByAddon = false;
std::string accessMsg = "";
-#if defined(TARGET_WINDOWS)
- // Try to open the directory
- CStdStringW strWFile = UTF8Util::ConvertUTF8ToUTF16(sharename.c_str());
- HANDLE hFile = ::CreateFileW(strWFile, // The filename
- (DWORD) GENERIC_READ, // File access
- (DWORD) FILE_SHARE_READ, // Share access
- NULL, // Security
- (DWORD) OPEN_EXISTING, // Open flags
- (DWORD) FILE_FLAG_BACKUP_SEMANTICS, // More flags
- NULL); // Template
- if (hFile != INVALID_HANDLE_VALUE)
- {
- (void) CloseHandle(hFile);
- isAccessibleByAddon = true;
- }
- else
- {
- LPVOID lpMsgBuf;
- DWORD dwErr = GetLastError();
- FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- dwErr,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- (LPTSTR) &lpMsgBuf,
- 0, NULL );
- accessMsg = (char*) lpMsgBuf;
- LocalFree(lpMsgBuf);
- }
-#elif defined(TARGET_LINUX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD)
- std::string CIFSname = sharename;
- std::string SMBPrefix = "smb://";
- if (g_szUser.length() > 0)
- {
- SMBPrefix += g_szUser;
- if (g_szPass.length() > 0)
- {
- SMBPrefix += ":" + g_szPass;
- }
- }
- else
- {
- SMBPrefix += "Guest";
- }
- SMBPrefix += "@";
- size_t found;
- while ((found = CIFSname.find("\\")) != std::string::npos)
- {
- CIFSname.replace(found, 1, "/");
- }
- CIFSname.erase(0,2);
- CIFSname.insert(0, SMBPrefix);
+ std::string CIFSname = ToCIFS(sharename);
isAccessibleByAddon = XBMC->CanOpenDirectory(CIFSname.c_str());
-#else
-#error implement for your OS!
-#endif
// write analysis results to the log
if (isAccessibleByATV)
{
@@ -342,6 +312,7 @@
XBMC->Log(LOG_DEBUG, "->RequestEPGForChannel(%i)", channel.iUniqueId);
cChannel* atvchannel = FetchChannel(channel.iUniqueId);
+ XBMC->Log(LOG_DEBUG, "ARGUS TV channel %p)", atvchannel);
struct tm* convert = localtime(&iStart);
struct tm tm_start = *convert;
@@ -353,6 +324,7 @@
Json::Value response;
int retval;
+ XBMC->Log(LOG_DEBUG, "Getting EPG Data for ARGUS TV channel %s)", atvchannel->GuideChannelID().c_str());
retval = ArgusTV::GetEPGData(atvchannel->GuideChannelID(), tm_start, tm_end, response);
if (retval != E_FAILED)
@@ -406,25 +378,12 @@
else
{
XBMC->Log(LOG_ERROR, "Channel (%i) did not return a channel class.", channel.iUniqueId);
- XBMC->QueueNotification(QUEUE_ERROR, "GUID to XBMC Channel");
+ XBMC->QueueNotification(QUEUE_ERROR, "Can't map XBMC Channel to ARGUS");
}
return PVR_ERROR_NO_ERROR;
}
-bool cPVRClientArgusTV::FetchGuideProgramDetails(std::string Id, cGuideProgram& guideprogram)
-{
- bool fRc = false;
- Json::Value guideprogramresponse;
-
- int retval = ArgusTV::GetProgramById(Id, guideprogramresponse);
- if (retval >= 0)
- {
- fRc = guideprogram.Parse(guideprogramresponse);
- }
- return fRc;
-}
-
/************************************************************/
/** Channel handling */
@@ -475,53 +434,51 @@
}
if(retval >= 0)
- {
+ {
+ if (bRadio)
+ {
+ FreeChannels(m_RadioChannels);
+ m_RadioChannels.clear();
+ }
+ else
+ {
+ FreeChannels(m_TVChannels);
+ m_TVChannels.clear();
+ }
int size = response.size();
// parse channel list
for ( int index = 0; index < size; ++index )
{
- cChannel channel;
- if( channel.Parse(response[index]) )
+ cChannel* channel = new cChannel;
+ if( channel->Parse(response[index]) )
{
PVR_CHANNEL tag;
memset(&tag, 0 , sizeof(tag));
- //Hack: assumes that the order of the channel list is fixed.
- // We can't use the ARGUS TV channel id's. They are GUID strings (128 bit int).
- // But only if it isn't cached yet!
- if (FetchChannel(channel.Guid(), false) == NULL)
- {
- tag.iUniqueId = m_channel_id_offset + 1;
- m_channel_id_offset++;
- }
- else
- {
- tag.iUniqueId = FetchChannel(channel.Guid())->ID();
- }
- strncpy(tag.strChannelName, channel.Name(), sizeof(tag.strChannelName));
- std::string logopath = ArgusTV::GetChannelLogo(channel.Guid()).c_str();
+ tag.iUniqueId = channel->ID();
+ strncpy(tag.strChannelName, channel->Name(), sizeof(tag.strChannelName));
+ std::string logopath = ArgusTV::GetChannelLogo(channel->Guid()).c_str();
strncpy(tag.strIconPath, logopath.c_str(), sizeof(tag.strIconPath));
tag.iEncryptionSystem = (unsigned int) -1; //How to fetch this from ARGUS TV??
- tag.bIsRadio = (channel.Type() == ArgusTV::Radio ? true : false);
+ tag.bIsRadio = (channel->Type() == ArgusTV::Radio ? true : false);
tag.bIsHidden = false;
//Use OpenLiveStream to read from the timeshift .ts file or an rtsp stream
memset(tag.strStreamURL, 0, sizeof(tag.strStreamURL));
strncpy(tag.strInputFormat, "video/x-mpegts", sizeof(tag.strInputFormat));
- tag.iChannelNumber = channel.LCN();
+ tag.iChannelNumber = channel->LCN();
if (!tag.bIsRadio)
{
- XBMC->Log(LOG_DEBUG, "Found TV channel: %s, Unique id: %d, Backend channel: %d\n", channel.Name(), tag.iUniqueId, tag.iChannelNumber);
+ m_TVChannels.push_back(channel);
+ XBMC->Log(LOG_DEBUG, "Found TV channel: %s, Unique id: %d, ARGUS LCN: %d, ARGUS Id: %d, ARGUS GUID: %s\n",
+ channel->Name(), tag.iUniqueId, tag.iChannelNumber, channel->ID(), channel->Guid().c_str());
}
else
{
- XBMC->Log(LOG_DEBUG, "Found Radio channel: %s, Unique id: %d, Backend channel: %d\n", channel.Name(), tag.iUniqueId, tag.iChannelNumber);
- }
- channel.SetID(tag.iUniqueId);
- if (FetchChannel(channel.Guid(), false) == NULL)
- {
- m_Channels.push_back(channel); //Local cache...
+ m_RadioChannels.push_back(channel);
+ XBMC->Log(LOG_DEBUG, "Found Radio channel: %s, Unique id: %d, ARGUS LCN: %d, ARGUS Id: %d, ARGUS GUID: %s\n",
+ channel->Name(), tag.iUniqueId, tag.iChannelNumber, channel->ID(), channel->Guid().c_str());
}
PVR->TransferChannelEntry(handle, &tag);
}
@@ -573,13 +530,14 @@
{
std::string name = response[index]["GroupName"].asString();
std::string guid = response[index]["ChannelGroupId"].asString();
+ int id = response[index]["Id"].asInt();
if (!bRadio)
{
- XBMC->Log(LOG_DEBUG, "Found TV channel group %s: %s\n", guid.c_str(), name.c_str());
+ XBMC->Log(LOG_DEBUG, "Found TV channel group %s, ARGUS Id: %d, ARGUS GUID: %s\n", name.c_str(), id, guid.c_str());
}
else
{
- XBMC->Log(LOG_DEBUG, "Found Radio channel group %s: %s\n", guid.c_str(), name.c_str());
+ XBMC->Log(LOG_DEBUG, "Found Radio channel group %s, ARGUS Id: %d, ARGUS GUID: %s\n", name.c_str(), id, guid.c_str());
}
PVR_CHANNEL_GROUP tag;
memset(&tag, 0 , sizeof(PVR_CHANNEL_GROUP));
@@ -644,24 +602,18 @@
{
std::string channelId = response[index]["ChannelId"].asString();
std::string channelName = response[index]["DisplayName"].asString();
- cChannel* pChannel = FetchChannel(channelId);
- if (pChannel == NULL)
- {
- XBMC->Log(LOG_ERROR, "Unable to translate channel \"%s\" (\"%s\") to XBMC channel number, channel group member skipped.",
- channelId.c_str(), channelName.c_str());
- XBMC->QueueNotification(QUEUE_ERROR, "GUID to XBMC Channel");
- continue;
- }
+ int id = response[index]["Id"].asInt();
+ int lcn = response[index]["LogicalChannelNumber"].asInt();
PVR_CHANNEL_GROUP_MEMBER tag;
memset(&tag,0 , sizeof(PVR_CHANNEL_GROUP_MEMBER));
strncpy(tag.strGroupName, group.strGroupName, sizeof(tag.strGroupName));
- tag.iChannelUniqueId = pChannel->ID();
- tag.iChannelNumber = pChannel->LCN();
+ tag.iChannelUniqueId = id;
+ tag.iChannelNumber = lcn;
- XBMC->Log(LOG_DEBUG, "%s - add channel %s (%d) to group '%s' channel number %d",
- __FUNCTION__, pChannel->Name(), tag.iChannelUniqueId, tag.strGroupName, tag.iChannelNumber);
+ XBMC->Log(LOG_DEBUG, "%s - add channel %s (%d) to group '%s' ARGUS LCN: %d, ARGUS Id: %d",
+ __FUNCTION__, channelName.c_str(), tag.iChannelUniqueId, tag.strGroupName, tag.iChannelNumber, id);
PVR->TransferChannelGroupMember(handle, &tag);
}
@@ -703,6 +655,7 @@
int iNumRecordings = 0;
XBMC->Log(LOG_DEBUG, "RequestRecordingsList()");
+ int64_t t = GetTimeMs();
retval = ArgusTV::GetRecordingGroupByTitle(recordinggroupresponse);
if(retval >= 0)
{
@@ -714,17 +667,16 @@
if (recordinggroup.Parse(recordinggroupresponse[recordinggroupindex]))
{
Json::Value recordingsbytitleresponse;
- retval = ArgusTV::GetRecordingsForTitle(recordinggroup.ProgramTitle(), recordingsbytitleresponse);
+ retval = ArgusTV::GetFullRecordingsForTitle(recordinggroup.ProgramTitle(), recordingsbytitleresponse);
if (retval >= 0)
{
- // process list of recording summaries for this group
+ // process list of recording details for this group
int nrOfRecordings = recordingsbytitleresponse.size();
for (int recordingindex = 0; recordingindex < nrOfRecordings; recordingindex++)
{
cRecording recording;
- cRecordingSummary recordingsummary;
- if (recordingsummary.Parse(recordingsbytitleresponse[recordingindex]) && FetchRecordingDetails(recordingsummary.RecordingId(), recording))
+ if (recording.Parse(recordingsbytitleresponse[recordingindex]))
{
PVR_RECORDING tag;
memset(&tag, 0 , sizeof(tag));
@@ -732,7 +684,7 @@
strncpy(tag.strRecordingId, recording.RecordingId(), sizeof(tag.strRecordingId));
strncpy(tag.strChannelName, recording.ChannelDisplayName(), sizeof(tag.strChannelName));
tag.iLifetime = MAXLIFETIME; //TODO: recording.Lifetime();
- tag.iPriority = 0; //TODO? recording.Priority();
+ tag.iPriority = recording.SchedulePriority();
tag.recordingTime = recording.RecordingStartTime();
tag.iDuration = recording.RecordingStopTime() - recording.RecordingStartTime();
strncpy(tag.strPlot, recording.Description(), sizeof(tag.strPlot));
@@ -749,11 +701,7 @@
}
strncpy(tag.strTitle, recording.Title(), sizeof(tag.strTitle));
strncpy(tag.strPlotOutline, recording.SubTitle(), sizeof(tag.strPlotOutline));
-#ifdef TARGET_WINDOWS
strncpy(tag.strStreamURL, recording.RecordingFileName(), sizeof(tag.strStreamURL));
-#else
- strncpy(tag.strStreamURL, recording.CIFSRecordingFileName(), sizeof(tag.strStreamURL));
-#endif
PVR->TransferRecordingEntry(handle, &tag);
iNumRecordings++;
}
@@ -762,47 +710,30 @@
}
}
}
+ t = GetTimeMs() - t;
+ XBMC->Log(LOG_INFO, "Retrieving %d recordings took %d milliseconds.", iNumRecordings, t);
return PVR_ERROR_NO_ERROR;
}
-bool cPVRClientArgusTV::FetchRecordingDetails(std::string recordingid, cRecording& recording)
-{
- bool fRc = false;
- Json::Value recordingresponse;
-
- cRecordingSummary recordingsummary;
- int retval = ArgusTV::GetRecordingById(recordingid, recordingresponse);
- if (retval >= 0)
- {
- if (recordingresponse.type() == Json::objectValue)
- {
- fRc = recording.Parse(recordingresponse);
- }
- }
- return fRc;
-}
-
PVR_ERROR cPVRClientArgusTV::DeleteRecording(const PVR_RECORDING &recinfo)
{
PVR_ERROR rc = PVR_ERROR_FAILED;
XBMC->Log(LOG_DEBUG, "->DeleteRecording(%s)", recinfo.strRecordingId);
+ std::string UNCname = ToUNC(recinfo.strStreamURL);
- cRecording recording;
- if (FetchRecordingDetails(recinfo.strRecordingId, recording))
+ XBMC->Log(LOG_DEBUG, "->DeleteRecording(%s == \"%s\")", recinfo.strRecordingId, UNCname.c_str());
+ // JSONify the stream_url
+ Json::Value recordingname (UNCname);
+ Json::FastWriter writer;
+ std::string jsonval = writer.write(recordingname);
+ if (ArgusTV::DeleteRecording(jsonval) >= 0)
{
- XBMC->Log(LOG_DEBUG, "->DeleteRecording(%s == \"%s\")", recinfo.strRecordingId, recording.RecordingFileName());
- // JSONify the stream_url
- Json::Value recordingname (recording.RecordingFileName());
- Json::StyledWriter writer;
- std::string jsonval = writer.write(recordingname);
- if (ArgusTV::DeleteRecording(jsonval) >= 0)
- {
- // Trigger XBMC to update it's list
- PVR->TriggerRecordingUpdate();
- rc = PVR_ERROR_NO_ERROR;
- }
+ // Trigger XBMC to update it's list
+ PVR->TriggerRecordingUpdate();
+ rc = PVR_ERROR_NO_ERROR;
}
+
return rc;
}
@@ -816,10 +747,7 @@
{
XBMC->Log(LOG_DEBUG, "->SetRecordingLastPlayedPosition(index=%s [%s], %d)", recinfo.strRecordingId, recinfo.strStreamURL, lastplayedposition);
- std::string recordingfilename = recinfo.strStreamURL;
-#if !defined(TARGET_WINDOWS)
- recordingfilename = ArgusTV::ToUNC(recordingfilename);
-#endif
+ std::string recordingfilename = ToUNC(recinfo.strStreamURL);
// JSONify the stream_url
Json::Value recordingname (recordingfilename);
@@ -839,10 +767,7 @@
{
XBMC->Log(LOG_DEBUG, "->GetRecordingLastPlayedPosition(index=%s [%s])", recinfo.strRecordingId, recinfo.strStreamURL);
- std::string recordingfilename = recinfo.strStreamURL;
-#if !defined(TARGET_WINDOWS)
- recordingfilename = ArgusTV::ToUNC(recordingfilename);
-#endif
+ std::string recordingfilename = ToUNC(recinfo.strStreamURL);
// JSONify the stream_url
Json::Value response;
@@ -866,10 +791,7 @@
{
XBMC->Log(LOG_DEBUG, "->SetRecordingPlayCount(index=%s [%s], %d)", recinfo.strRecordingId, recinfo.strStreamURL, playcount);
- std::string recordingfilename = recinfo.strStreamURL;
-#if !defined(TARGET_WINDOWS)
- recordingfilename = ArgusTV::ToUNC(recordingfilename);
-#endif
+ std::string recordingfilename = ToUNC(recinfo.strStreamURL);
// JSONify the stream_url
Json::Value recordingname (recordingfilename);
@@ -938,16 +860,8 @@
cUpcomingRecording upcomingrecording;
if (upcomingrecording.Parse(upcomingRecordingsResponse[i]))
{
- tag.iClientIndex = iNumberOfTimers;
- cChannel* pChannel = FetchChannel(upcomingrecording.ChannelId());
- if (pChannel == NULL)
- {
- XBMC->Log(LOG_ERROR, "Unable to translate channel \"%s\" (\"%s\") to XBMC channel number, timer skipped.",
- upcomingrecording.ChannelId().c_str(), upcomingrecording.ChannelDisplayname().c_str());
- XBMC->QueueNotification(QUEUE_ERROR, "GUID to XBMC Channel");
- continue;
- }
- tag.iClientChannelUid = pChannel->ID();
+ tag.iClientIndex = upcomingrecording.ID();
+ tag.iClientChannelUid = upcomingrecording.ChannelID();
tag.startTime = upcomingrecording.StartTime();
tag.endTime = upcomingrecording.StopTime();
@@ -1008,6 +922,8 @@
tag.iGenreSubType = 0;
PVR->TransferTimerEntry(handle, &tag);
+ XBMC->Log(LOG_DEBUG, "Found timer: %s, Unique id: %d, ARGUS ProgramId: %d, ARGUS ChannelId: %d\n",
+ tag.strTitle, tag.iClientIndex, upcomingrecording.ID(), upcomingrecording.ChannelID());
iNumberOfTimers++;
}
}
@@ -1017,7 +933,7 @@
PVR_ERROR cPVRClientArgusTV::AddTimer(const PVR_TIMER &timerinfo)
{
- XBMC->Log(LOG_DEBUG, "AddTimer(start @ %d, end @ %d)", timerinfo.startTime, timerinfo.endTime);
+ XBMC->Log(LOG_DEBUG, "AddTimer(title %s, start @ %d, end @ %d)", timerinfo.strTitle, timerinfo.startTime, timerinfo.endTime);
// re-synthesize the ARGUS TV channel GUID
cChannel* pChannel = FetchChannel(timerinfo.iClientChannelUid);
@@ -1025,14 +941,41 @@
{
XBMC->Log(LOG_ERROR, "Unable to translate XBMC channel %d to ARGUS TV channel GUID, timer not added.",
timerinfo.iClientChannelUid);
- XBMC->QueueNotification(QUEUE_ERROR, "XBMC Channel to GUID");
+ XBMC->QueueNotification(QUEUE_ERROR, "Can't map XBMC Channel to ARGUS");
return PVR_ERROR_SERVER_ERROR;
}
+ XBMC->Log(LOG_DEBUG, "%s: XBMC channel %d translated to ARGUS channel %s.", __FUNCTION__,
+ timerinfo.iClientChannelUid, pChannel->Guid().c_str());
+
+ // Try to get original EPG data from ARGUS
+ struct tm* convert = localtime(&timerinfo.startTime);
+ struct tm tm_start = *convert;
+ convert = localtime(&timerinfo.endTime);
+ struct tm tm_end = *convert;
+
+ Json::Value epgResponse;
+ XBMC->Log(LOG_DEBUG, "%s: Getting EPG Data for ARGUS TV channel %s", __FUNCTION__, pChannel->GuideChannelID().c_str());
+ int retval = ArgusTV::GetEPGData(pChannel->GuideChannelID(), tm_start, tm_end, epgResponse);
+
+ std::string programTitle = timerinfo.strTitle;
+ if (retval >= 0)
+ {
+ XBMC->Log(LOG_DEBUG, "%s: Getting EPG Data for ARGUS TV channel %s returned %d entries.", __FUNCTION__, pChannel->GuideChannelID().c_str(), epgResponse.size());
+ if (epgResponse.size() > 0)
+ {
+ programTitle = epgResponse[0u]["Title"].asString();
+ }
+ }
+ else
+ {
+ XBMC->Log(LOG_DEBUG, "%s: Getting EPG Data for ARGUS TV channel %s failed.", __FUNCTION__, pChannel->GuideChannelID().c_str());
+ }
+
Json::Value addScheduleResponse;
time_t starttime = timerinfo.startTime;
if (starttime == 0) starttime = time(NULL);
- int retval = ArgusTV::AddOneTimeSchedule(pChannel->Guid(), starttime, timerinfo.strTitle, timerinfo.iMarginStart * 60, timerinfo.iMarginEnd * 60, timerinfo.iLifetime, addScheduleResponse);
+ retval = ArgusTV::AddOneTimeSchedule(pChannel->Guid(), starttime, programTitle, timerinfo.iMarginStart * 60, timerinfo.iMarginEnd * 60, timerinfo.iLifetime, addScheduleResponse);
if (retval < 0)
{
return PVR_ERROR_SERVER_ERROR;
@@ -1040,6 +983,10 @@
std::string scheduleid = addScheduleResponse["ScheduleId"].asString();
+ XBMC->Log(LOG_DEBUG, "%s: ARGUS one-time schedule added with id %s.", __FUNCTION__,
+ scheduleid.c_str());
+
+
// Ok, we created a schedule, but did that lead to an upcoming recording?
Json::Value upcomingProgramsResponse;
retval = ArgusTV::GetUpcomingProgramsForSchedule(addScheduleResponse, upcomingProgramsResponse);
@@ -1074,18 +1021,6 @@
XBMC->Log(LOG_DEBUG, "DeleteTimer()");
- // re-synthesize the ARGUS TV startime, stoptime and channel GUID
- time_t starttime = timerinfo.startTime;
- time_t stoptime = timerinfo.endTime;
- cChannel* pChannel = FetchChannel(timerinfo.iClientChannelUid);
- if (pChannel == NULL)
- {
- XBMC->Log(LOG_ERROR, "Unable to translate XBMC channel %d to ARGUS TV channel GUID, timer not deleted.",
- timerinfo.iClientChannelUid);
- XBMC->QueueNotification(QUEUE_ERROR, "XBMC Channel to GUID");
- return PVR_ERROR_SERVER_ERROR;
- }
-
// retrieve the currently active recordings
int retval = ArgusTV::GetActiveRecordings(activeRecordingsResponse);
if (retval < 0)
@@ -1109,64 +1044,58 @@
cUpcomingRecording upcomingrecording;
if (upcomingrecording.Parse(upcomingProgramsResponse[i]))
{
- if (upcomingrecording.ChannelId() == pChannel->Guid())
+ if (upcomingrecording.ID() == (int) timerinfo.iClientIndex)
{
- if (upcomingrecording.StartTime() == starttime)
+ // Okay, we matched the timer to an upcoming program, but is it recording right now?
+ if (activeRecordingsResponse.size() > 0)
{
- if (upcomingrecording.StopTime() == stoptime)
+ // Is the this upcoming program in the list of active recordings?
+ for (Json::Value::UInt j = 0; j < activeRecordingsResponse.size(); j++)
{
- // Okay, we matched the timer to an upcoming program, but is it recording right now?
- if (activeRecordingsResponse.size() > 0)
+ cActiveRecording activerecording;
+ if (activerecording.Parse(activeRecordingsResponse[j]))
{
- // Is the this upcoming program in the list of active recordings?
- for (Json::Value::UInt j = 0; j < activeRecordingsResponse.size(); j++)
+ if (upcomingrecording.UpcomingProgramId() == activerecording.UpcomingProgramId())
{
- cActiveRecording activerecording;
- if (activerecording.Parse(activeRecordingsResponse[j]))
+ // Abort this recording
+ retval = ArgusTV::AbortActiveRecording(activeRecordingsResponse[j]);
+ if (retval != 0)
{
- if (upcomingrecording.UpcomingProgramId() == activerecording.UpcomingProgramId())
- {
- // Abort this recording
- retval = ArgusTV::AbortActiveRecording(activeRecordingsResponse[j]);
- if (retval != 0)
- {
- XBMC->Log(LOG_ERROR, "Unable to cancel the active recording of \"%s\" on the server. Will try to cancel the program.", upcomingrecording.Title().c_str());
- }
- break;
- }
+ XBMC->Log(LOG_ERROR, "Unable to cancel the active recording of \"%s\" on the server. Will try to cancel the program.", upcomingrecording.Title().c_str());
}
+ break;
}
}
+ }
+ }
- Json::Value scheduleResponse;
- retval = ArgusTV::GetScheduleById(upcomingrecording.ScheduleId(), scheduleResponse);
- std::string schedulename = scheduleResponse["Name"].asString();
+ Json::Value scheduleResponse;
+ retval = ArgusTV::GetScheduleById(upcomingrecording.ScheduleId(), scheduleResponse);
+ std::string schedulename = scheduleResponse["Name"].asString();
- if (scheduleResponse["IsOneTime"].asBool() == true)
- {
- retval = ArgusTV::DeleteSchedule(upcomingrecording.ScheduleId());
- if (retval < 0)
- {
- XBMC->Log(LOG_NOTICE, "Unable to delete schedule %s from server.", schedulename.c_str());
- return PVR_ERROR_SERVER_ERROR;
- }
- }
- else
- {
- retval = ArgusTV::CancelUpcomingProgram(upcomingrecording.ScheduleId(), upcomingrecording.ChannelId(),
- upcomingrecording.StartTime(), upcomingrecording.GuideProgramId());
- if (retval < 0)
- {
- XBMC->Log(LOG_ERROR, "Unable to cancel upcoming program from server.");
- return PVR_ERROR_SERVER_ERROR;
- }
- }
-
- // Trigger an update of the PVR timers
- PVR->TriggerTimerUpdate();
- return PVR_ERROR_NO_ERROR;
+ if (scheduleResponse["IsOneTime"].asBool() == true)
+ {
+ retval = ArgusTV::DeleteSchedule(upcomingrecording.ScheduleId());
+ if (retval < 0)
+ {
+ XBMC->Log(LOG_NOTICE, "Unable to delete schedule %s from server.", schedulename.c_str());
+ return PVR_ERROR_SERVER_ERROR;
+ }
+ }
+ else
+ {
+ retval = ArgusTV::CancelUpcomingProgram(upcomingrecording.ScheduleId(), upcomingrecording.ChannelId(),
+ upcomingrecording.StartTime(), upcomingrecording.GuideProgramId());
+ if (retval < 0)
+ {
+ XBMC->Log(LOG_ERROR, "Unable to cancel upcoming program from server.");
+ return PVR_ERROR_SERVER_ERROR;
}
}
+
+ // Trigger an update of the PVR timers
+ PVR->TriggerTimerUpdate();
+ return PVR_ERROR_NO_ERROR;
}
}
}
@@ -1182,38 +1111,41 @@
/************************************************************/
/** Live stream handling */
-cChannel* cPVRClientArgusTV::FetchChannel(int channel_uid, bool LogError)
+cChannel* cPVRClientArgusTV::FetchChannel(int channelid, bool LogError)
+{
+ cChannel* rc = FetchChannel(m_TVChannels, channelid, false);
+ if (rc == NULL) rc = FetchChannel(m_RadioChannels, channelid, false);
+
+ if (LogError && rc == NULL) XBMC->Log(LOG_ERROR, "XBMC channel with id %d not found in the channel caches!.", channelid);
+ return rc;
+}
+
+cChannel* cPVRClientArgusTV::FetchChannel(std::vector m_Channels, int channelid, bool LogError)
{
// Search for this channel in our local channel list to find the original ChannelID back:
- vector::iterator it;
+ vector::iterator it;
for ( it=m_Channels.begin(); it < m_Channels.end(); it++ )
{
- if (it->ID() == channel_uid)
+ if ((*it)->ID() == channelid)
{
- return &*it;
+ return *it;
}
}
- if (LogError) XBMC->Log(LOG_ERROR, "XBMC channel with id %d not found in the channel cache!.", channel_uid);
+ if (LogError) XBMC->Log(LOG_ERROR, "XBMC channel with id %d not found in the channel cache!.", channelid);
return NULL;
}
-cChannel* cPVRClientArgusTV::FetchChannel(std::string channelid, bool LogError)
+void cPVRClientArgusTV::FreeChannels(std::vector m_Channels)
{
// Search for this channel in our local channel list to find the original ChannelID back:
- vector::iterator it;
+ vector::iterator it;
for ( it=m_Channels.begin(); it < m_Channels.end(); it++ )
{
- if (it->Guid() == channelid)
- {
- return &*it;
- }
+ SAFE_DELETE(*it);
}
-
- if (LogError) XBMC->Log(LOG_ERROR, "ARGUS TV channel with GUID \"%s\" not found in the channel cache!.", channelid.c_str());
- return NULL;
}
bool cPVRClientArgusTV::_OpenLiveStream(const PVR_CHANNEL &channelinfo)
@@ -1261,32 +1193,7 @@
}
}
-#if defined(TARGET_LINUX) || defined(TARGET_DARWIN)
- // TODO FHo: merge this code and the code that translates names from recordings
- std::string CIFSname = filename;
- std::string SMBPrefix = "smb://";
- if (g_szUser.length() > 0)
- {
- SMBPrefix += g_szUser;
- if (g_szPass.length() > 0)
- {
- SMBPrefix += ":" + g_szPass;
- }
- }
- else
- {
- SMBPrefix += "Guest";
- }
- SMBPrefix += "@";
- size_t found;
- while ((found = CIFSname.find("\\")) != std::string::npos)
- {
- CIFSname.replace(found, 1, "/");
- }
- CIFSname.erase(0,2);
- CIFSname.insert(0, SMBPrefix.c_str());
- filename = CIFSname;
-#endif
+ filename = ToCIFS(filename);
if (retval != E_SUCCESS || filename.length() == 0)
{
@@ -1301,9 +1208,9 @@
XBMC->Log(LOG_INFO, "Live stream file: %s", filename.c_str());
m_bTimeShiftStarted = true;
m_iCurrentChannel = channelinfo.iUniqueId;
- if (!m_keepalive.IsRunning())
+ if (!m_keepalive->IsRunning())
{
- if (!m_keepalive.CreateThread())
+ if (!m_keepalive->CreateThread())
{
XBMC->Log(LOG_ERROR, "Start keepalive thread failed.");
}
@@ -1337,7 +1244,7 @@
XBMC->Log(LOG_DEBUG, "Open TsReader");
m_tsreader->Open(filename.c_str());
m_tsreader->OnZap();
- XBMC->Log(LOG_DEBUG, "Delaying %ld milliseconds.", (1000 * g_iTuneDelay));
+ XBMC->Log(LOG_DEBUG, "Delaying %ld milliseconds.", (g_iTuneDelay));
usleep(1000 * g_iTuneDelay);
return true;
}
@@ -1353,7 +1260,11 @@
bool cPVRClientArgusTV::OpenLiveStream(const PVR_CHANNEL &channelinfo)
{
- return _OpenLiveStream(channelinfo);
+ int64_t t = GetTimeMs();
+ bool rc = _OpenLiveStream(channelinfo);
+ t = GetTimeMs() - t;
+ XBMC->Log(LOG_INFO, "Opening live stream took %d milliseconds.", t);
+ return rc;
}
int cPVRClientArgusTV::ReadLiveStream(unsigned char* pBuffer, unsigned int iBufferSize)
@@ -1441,9 +1352,9 @@
string result;
XBMC->Log(LOG_INFO, "CloseLiveStream");
- if (m_keepalive.IsRunning())
+ if (m_keepalive->IsRunning())
{
- if (!m_keepalive.StopThread())
+ if (!m_keepalive->StopThread())
{
XBMC->Log(LOG_ERROR, "Stop keepalive thread failed.");
}
@@ -1489,7 +1400,7 @@
{
// Close existing live stream before opening a new one.
// This is slower, but it helps XBMC playback when the streams change types (e.g. SD->HD).
- // It also gives a better tuner allocation when using multiple clients with a limited count of tuners.
+ // It also gives a better tuner allocation when using multiple clients with a limited count of tuners.
CloseLiveStream();
}
fRc = OpenLiveStream(channelinfo);
@@ -1558,19 +1469,8 @@
/** Record stream handling */
bool cPVRClientArgusTV::OpenRecordedStream(const PVR_RECORDING &recinfo)
{
- XBMC->Log(LOG_DEBUG, "->OpenRecordedStream(index=%s)", recinfo.strRecordingId);
- cRecording recording;
- if (!FetchRecordingDetails(recinfo.strRecordingId, recording))
- {
- XBMC->Log(LOG_ERROR, "Unable to fetch recording details for %s", recinfo.strRecordingId);
- return false;
- }
-
-#if TARGET_WINDOWS
- const char* recordingName = recording.RecordingFileName();
-#else
- const char* recordingName = recording.CIFSRecordingFileName();
-#endif
+ XBMC->Log(LOG_DEBUG, "->OpenRecordedStream(%s)", recinfo.strStreamURL);
+ std::string UNCname = ToUNC(recinfo.strStreamURL);
if (m_tsreader != NULL)
{
@@ -1579,7 +1479,7 @@
SAFE_DELETE(m_tsreader);
}
m_tsreader = new CTsReader();
- if (m_tsreader->Open(recordingName) != S_OK)
+ if (m_tsreader->Open(UNCname.c_str()) != S_OK)
{
SAFE_DELETE(m_tsreader);
return false;
@@ -1673,7 +1573,7 @@
bool cPVRClientArgusTV::CanPauseAndSeek()
{
- if (m_tsreader)
- return true;
- return false;
+ bool rc = (m_tsreader != NULL);
+ XBMC->Log(LOG_DEBUG, "<-CanPauseAndSeek returns %s", rc ? "true" : "false");
+ return rc;
}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/pvrclient-argustv.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/pvrclient-argustv.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/pvrclient-argustv.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/pvrclient-argustv.h 2014-05-04 06:40:42.000000000 +0000
@@ -29,6 +29,7 @@
#include "guideprogram.h"
#include "KeepAliveThread.h"
+#include "EventsThread.h"
class CTsReader;
@@ -106,11 +107,10 @@
const char* GetLiveStreamURL(const PVR_CHANNEL &channel);
private:
- cChannel* FetchChannel(int channel_uid, bool LogError = true);
- cChannel* FetchChannel(std::string channelid, bool LogError = true);
+ cChannel* FetchChannel(int channelid, bool LogError = true);
+ cChannel* FetchChannel(std::vector m_Channels, int channelid, bool LogError = true);
+ void FreeChannels(std::vector m_Channels);
void Close();
- bool FetchRecordingDetails(std::string recordingid, cRecording& recording);
- bool FetchGuideProgramDetails(std::string Id, cGuideProgram& guideprogram);
bool _OpenLiveStream(const PVR_CHANNEL &channel);
int m_iCurrentChannel;
@@ -123,12 +123,13 @@
time_t m_BackendUTCoffset;
time_t m_BackendTime;
- std::vector m_Channels; // Local channel cache list needed for id to guid conversion
- int m_channel_id_offset;
+ std::vector m_TVChannels; // Local TV channel cache list needed for id to guid conversion
+ std::vector m_RadioChannels; // Local Radio channel cache list needed for id to guid conversion
int m_epg_id_offset;
int m_signalqualityInterval;
CTsReader* m_tsreader;
- CKeepAliveThread m_keepalive;
+ CKeepAliveThread* m_keepalive;
+ CEventsThread* m_eventmonitor;
#if defined(ATV_DUMPTS)
char ofn[25];
int ofd;
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/recording.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/recording.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/recording.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/recording.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -39,7 +39,7 @@
episodenumbertotal = 0;
episodepart = 0;
episodeparttotal = 0;
- ischanged = false;
+ isfullywatched = false;
ispartofseries = false;
ispartialrecording = false;
ispremiere = false;
@@ -62,12 +62,8 @@
schedulepriority = ArgusTV::Normal;
seriesnumber = 0;
starrating = 0.0;
- starttime = 0;
- stoptime = 0;
subtitle = "";
- thumbnailfilename = "";
title = "";
- videoaspect = ArgusTV::Unknown;
}
cRecording::~cRecording(void)
@@ -78,6 +74,7 @@
{
int offset;
std::string t;
+ id = data["Id"].asInt();
actors = data["Actors"].asString();
category = data["Category"].asString();
channeldisplayname = data["ChannelDisplayName"].asString();
@@ -90,7 +87,7 @@
episodenumbertotal = data["EpisodeNumberTotal"].asInt();
episodepart = data["EpisodePart"].asInt();
episodeparttotal = data["EpisodePartTotal"].asInt();
- ischanged = data["IsChanged"].asBool();
+ isfullywatched = data["IsFullyWatched"].asBool();
ispartofseries = data["IsPartOfSeries"].asBool();
ispartialrecording = data["IsPartialRecording"].asBool();
ispremiere = data["IsPremiere"].asBool();
@@ -107,7 +104,8 @@
programstoptime = ArgusTV::WCFDateToTimeT(t, offset);
rating = data["Rating"].asString();
recordingfileformatid = data["RecordingFileFormatId"].asString();
- recordingfilename = data["RecordingFileName"].asString();
+ t = data["RecordingFileName"].asString();
+ recordingfilename = ToCIFS(t);
recordingid = data["RecordingId"].asString();
t = data["RecordingStartTime"].asString();
recordingstarttime = ArgusTV::WCFDateToTimeT(t, offset);
@@ -118,37 +116,8 @@
schedulepriority = (ArgusTV::SchedulePriority) data["SchedulePriority"].asInt();
seriesnumber = data["SeriesNumber"].asInt();
starrating = data["StarRating"].asDouble();
- t = data["StartTime"].asString();
- starttime = ArgusTV::WCFDateToTimeT(t, offset);
- t = data["StopTime"].asString();
- stoptime = ArgusTV::WCFDateToTimeT(t, offset);
subtitle = data["SubTitle"].asString();
- thumbnailfilename = data["ThumbnailFileName"].asString();
title = data["Title"].asString();
- videoaspect = (ArgusTV::VideoAspectRatio) data["VideoAspect"].asInt();
- std::string CIFSname = recordingfilename;
- std::string SMBPrefix = "smb://";
- if (g_szUser.length() > 0)
- {
- SMBPrefix += g_szUser;
- if (g_szPass.length() > 0)
- {
- SMBPrefix += ":" + g_szPass;
- }
- }
- else
- {
- SMBPrefix += "Guest";
- }
- SMBPrefix += "@";
- size_t found;
- while ((found = CIFSname.find("\\")) != std::string::npos)
- {
- CIFSname.replace(found, 1, "/");
- }
- CIFSname.erase(0,2);
- CIFSname.insert(0, SMBPrefix);
- cifsrecordingfilename = CIFSname;
return true;
}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/recording.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/recording.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/recording.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/recording.h 2014-01-04 10:28:12.000000000 +0000
@@ -27,6 +27,7 @@
class cRecording
{
private:
+ int id;
std::string actors;
std::string category;
std::string channeldisplayname;
@@ -39,7 +40,7 @@
int episodenumbertotal;
int episodepart;
int episodeparttotal;
- bool ischanged;
+ bool isfullywatched;
bool ispartofseries;
bool ispartialrecording;
bool ispremiere;
@@ -54,7 +55,6 @@
std::string rating;
std::string recordingfileformatid;
std::string recordingfilename;
- std::string cifsrecordingfilename;
std::string recordingid;
time_t recordingstarttime;
time_t recordingstoptime;
@@ -63,12 +63,8 @@
ArgusTV::SchedulePriority schedulepriority;
int seriesnumber;
double starrating;
- time_t starttime;
- time_t stoptime;
std::string subtitle;
- std::string thumbnailfilename;
std::string title;
- ArgusTV::VideoAspectRatio videoaspect;
public:
cRecording(void);
virtual ~cRecording(void);
@@ -76,7 +72,7 @@
bool Parse(const Json::Value& data);
void Transform(bool isgroupmember);
-
+ int Id(void) const { return id; }
const char *Actors(void) const { return actors.c_str(); }
const char *Category(void) const { return category.c_str(); }
const char *ChannelDisplayName(void) const { return channeldisplayname.c_str(); }
@@ -89,7 +85,7 @@
int EpisodeNumberTotal(void) const { return episodenumbertotal; }
int EpisodePart(void) const { return episodepart; }
int EpisodePartTotal(void) const { return episodeparttotal; }
- bool IsChanged(void) const { return ischanged; }
+ bool IsFullyWatched(void) const { return isfullywatched; }
bool IsPartOfSeries(void) const { return ispartofseries; }
bool IsPartialRecording(void) const { return ispartialrecording; }
bool IsPremiere(void) const { return ispremiere; }
@@ -104,7 +100,6 @@
const char *Rating(void) const { return rating.c_str(); }
const char *RecordingFileFormatId(void) const { return recordingfileformatid.c_str(); }
const char *RecordingFileName(void) const { return recordingfilename.c_str(); }
- const char *CIFSRecordingFileName(void) const { return cifsrecordingfilename.c_str(); }
const char *RecordingId(void) const { return recordingid.c_str(); }
time_t RecordingStartTime(void) const { return recordingstarttime; }
time_t RecordingStopTime(void) const { return recordingstoptime; }
@@ -113,10 +108,6 @@
ArgusTV::SchedulePriority SchedulePriority(void) const { return schedulepriority; }
int SeriesNumber(void) const { return seriesnumber; }
double StarRating(void) const { return starrating; }
- time_t StartTime(void) const { return starttime; }
- time_t StopTime(void) const { return stoptime; }
const char *SubTitle(void) const { return subtitle.c_str(); }
- const char *ThumbnailFileName(void) const { return thumbnailfilename.c_str(); }
const char *Title(void) const { return title.c_str(); }
- ArgusTV::VideoAspectRatio VideoAspect(void) const { return videoaspect; }
};
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/recordingsummary.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/recordingsummary.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/recordingsummary.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/recordingsummary.cpp 1970-01-01 00:00:00.000000000 +0000
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2011 Fred Hoogduin
- *
- * 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 "utils.h"
-#include
-#include
-#include "recordingsummary.h"
-
-cRecordingSummary::cRecordingSummary(void)
-{
- category = "";
- channeldisplayname = "";
- channelid = "";
- channeltype = ArgusTV::Television;
- episodenumber = 0;
- episodenumberdisplay = "";
- episodenumbertotal = 0;
- episodepart = 0;
- episodeparttotal = 0;
- ispartofseries = false;
- ispartialrecording = false;
- ispremiere = false;
- isrepeat = false;
- keepuntilmode = ArgusTV::UntilSpaceIsNeeded;
- keepuntilvalue = 0;
- lastwatchedposition = 0;
- lastwatchedtime = 0;
- programstarttime = 0;
- programstoptime = 0;
- rating = "";
- recordingfileformatid = "";
- recordingfilename = "";
- recordingid = "";
- recordingstarttime = 0;
- recordingstoptime = 0;
- scheduleid = "";
- schedulename = "";
- schedulepriority = ArgusTV::Normal;
- seriesnumber = 0;
- starrating = 0.0;
- starttime = 0;
- stoptime = 0;
- subtitle = "";
- title = "";
- videoaspect = ArgusTV::Unknown;
-}
-
-cRecordingSummary::~cRecordingSummary(void)
-{
-}
-
-bool cRecordingSummary::Parse(const Json::Value& data)
-{
- int offset;
- std::string t;
- category = data["Category"].asString();
- channeldisplayname = data["ChannelDisplayName"].asString();
- channelid = data["ChannelId"].asString();
- channeltype = (ArgusTV::ChannelType) data["ChannelType"].asInt();
- episodenumber = data["EpisodeNumber"].asInt();
- episodenumberdisplay = data["EpisodeNumberDisplay"].asString();
- episodenumbertotal = data["EpisodeNumberTotal"].asInt();
- episodepart = data["EpisodePart"].asInt();
- episodeparttotal = data["EpisodePartTotal"].asInt();
- ispartofseries = data["IsPartOfSeries"].asBool();
- ispartialrecording = data["IsPartialRecording"].asBool();
- ispremiere = data["IsPremiere"].asBool();
- isrepeat = data["IsRepeat"].asBool();
- keepuntilmode = (ArgusTV::KeepUntilMode) data["KeepUntilMode"].asInt();
- keepuntilvalue = data["KeepUntilValue"].asInt();
- lastwatchedposition = data["LastWatchedPosition"].asInt();
- t = data["LastWatchedTime"].asString();
- lastwatchedtime = ArgusTV::WCFDateToTimeT(t, offset);
- lastwatchedtime += ((offset/100)*3600);
- t = data["ProgramStartTime"].asString();
- programstarttime = ArgusTV::WCFDateToTimeT(t, offset);
- programstarttime += ((offset/100)*3600);
- t = data["ProgramStopTime"].asString();
- programstoptime = ArgusTV::WCFDateToTimeT(t, offset);
- programstoptime += ((offset/100)*3600);
- rating = data["Rating"].asString();
- recordingfileformatid = data["RecordingFileFormatId"].asString();
- recordingfilename = data["RecordingFileName"].asString();
- recordingid = data["RecordingId"].asString();
- t = data["RecordingStartTime"].asString();
- recordingstarttime = ArgusTV::WCFDateToTimeT(t, offset);
- recordingstarttime += ((offset/100)*3600);
- t = data["RecordingStopTime"].asString();
- recordingstoptime = ArgusTV::WCFDateToTimeT(t, offset);
- recordingstoptime += ((offset/100)*3600);
- scheduleid = data["ScheduleId"].asString();
- schedulename = data["ScheduleName"].asString();
- schedulepriority = (ArgusTV::SchedulePriority) data["SchedulePriority"].asInt();
- seriesnumber = data["SeriesNumber"].asInt();
- starrating = data["StarRating"].asDouble();
- t = data["StartTime"].asString();
- starttime = ArgusTV::WCFDateToTimeT(t, offset);
- starttime += ((offset/100)*3600);
- t = data["StopTime"].asString();
- stoptime = ArgusTV::WCFDateToTimeT(t, offset);
- stoptime += ((offset/100)*3600);
- subtitle = data["SubTitle"].asString();
- title = data["Title"].asString();
- videoaspect = (ArgusTV::VideoAspectRatio) data["VideoAspect"].asInt();
-
- return true;
-}
\ No newline at end of file
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/recordingsummary.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/recordingsummary.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/recordingsummary.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/recordingsummary.h 1970-01-01 00:00:00.000000000 +0000
@@ -1,109 +0,0 @@
-#pragma once
-/*
- * Copyright (C) 2011 Fred Hoogduin
- *
- * 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_pvr.h"
-#include
-#include
-#include "argustvrpc.h"
-
-#define MAXLIFETIME 99 //Based on VDR addon and VDR documentation. 99=Keep forever, 0=can be deleted at any time, 1..98=days to keep
-
-class cRecordingSummary
-{
-private:
- std::string category;
- std::string channeldisplayname;
- std::string channelid;
- ArgusTV::ChannelType channeltype;
- int episodenumber;
- std::string episodenumberdisplay;
- int episodenumbertotal;
- int episodepart;
- int episodeparttotal;
- bool ispartofseries;
- bool ispartialrecording;
- bool ispremiere;
- bool isrepeat;
- ArgusTV::KeepUntilMode keepuntilmode;
- int keepuntilvalue;
- int lastwatchedposition;
- time_t lastwatchedtime;
- time_t programstarttime;
- time_t programstoptime;
- std::string rating;
- std::string recordingfileformatid;
- std::string recordingfilename;
- std::string recordingid;
- time_t recordingstarttime;
- time_t recordingstoptime;
- std::string scheduleid;
- std::string schedulename;
- ArgusTV::SchedulePriority schedulepriority;
- int seriesnumber;
- double starrating;
- time_t starttime;
- time_t stoptime;
- std::string subtitle;
- std::string title;
- ArgusTV::VideoAspectRatio videoaspect;
-
-public:
- cRecordingSummary(void);
- virtual ~cRecordingSummary(void);
-
- bool Parse(const Json::Value& data);
-
- const char *Category(void) const { return category.c_str(); }
- const char *ChannelDisplayName(void) const { return channeldisplayname.c_str(); }
- const char *ChannelId(void) const { return channelid.c_str(); }
- ArgusTV::ChannelType ChannelType(void) const { return channeltype; };
- int EpisodeNumber(void) const { return episodenumber; }
- const char *EpisodeNumberDisplay(void) const { return episodenumberdisplay.c_str(); }
- int EpisodeNumberTotal(void) const { return episodenumbertotal; }
- int EpisodePart(void) const { return episodepart; }
- int EpisodePartTotal(void) const { return episodeparttotal; }
- bool IsPartOfSeries(void) const { return ispartofseries; }
- bool IsPartialRecording(void) const { return ispartialrecording; }
- bool IsPremiere(void) const { return ispremiere; }
- bool IsRepeat(void) const { return isrepeat; }
- ArgusTV::KeepUntilMode KeepUntilMode(void) const { return keepuntilmode; }
- int KeepUntilValue(void) const { return keepuntilvalue; }
- int LastWatchedPosition(void) const { return lastwatchedposition; }
- time_t LastWatchedTime(void) const { return lastwatchedtime; }
- time_t ProgramStartTime(void) const { return programstarttime; }
- time_t ProgramStopTime(void) const { return programstoptime; }
- const char *Rating(void) const { return rating.c_str(); }
- const char *RecordingFileFormatId(void) const { return recordingfileformatid.c_str(); }
- const char *RecordingFileName(void) const { return recordingfilename.c_str(); }
- const std::string& RecordingId(void) const { return recordingid; }
- time_t RecordingStartTime(void) const { return recordingstarttime; }
- time_t RecordingStopTime(void) const { return recordingstoptime; }
- const char *ScheduleId(void) const { return scheduleid.c_str(); }
- const char *ScheduleName(void) const { return schedulename.c_str(); }
- ArgusTV::SchedulePriority SchedulePriority(void) const { return schedulepriority; }
- int SeriesNumber(void) const { return seriesnumber; }
- double StarRating(void) const { return starrating; }
- time_t StartTime(void) const { return starttime; }
- time_t StopTime(void) const { return stoptime; }
- const char *SubTitle(void) const { return subtitle.c_str(); }
- const char *Title(void) const { return title.c_str(); }
- ArgusTV::VideoAspectRatio VideoAspect(void) const { return videoaspect; }
-};
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/upcomingrecording.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/upcomingrecording.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/upcomingrecording.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/upcomingrecording.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -36,6 +36,8 @@
iscancelled = false;
isallocated = true;
isinconflict = true;
+ id = 0;
+ ichannelid = 0;
}
cUpcomingRecording::~cUpcomingRecording(void)
@@ -50,6 +52,7 @@
programobject = data["Program"];
date = 0;
+ id = programobject["Id"].asInt();
t = programobject["StartTime"].asString();
starttime = ArgusTV::WCFDateToTimeT(t, offset);
t = programobject["StopTime"].asString();
@@ -66,6 +69,7 @@
channelobject = programobject["Channel"];
channelid = channelobject["ChannelId"].asString();
channeldisplayname = channelobject["DisplayName"].asString();
+ ichannelid = channelobject["Id"].asInt();
if (data["CardChannelAllocation"].empty())
isallocated = false;
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/upcomingrecording.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/upcomingrecording.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/upcomingrecording.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/upcomingrecording.h 2014-01-04 10:28:12.000000000 +0000
@@ -40,6 +40,9 @@
std::string scheduleid;
bool isallocated;
bool isinconflict;
+ int id;
+ int ichannelid;
+
public:
cUpcomingRecording(void);
@@ -47,7 +50,9 @@
bool Parse(const Json::Value& data);
+ int ID(void) const { return id; }
const std::string& ChannelId(void) const { return channelid; }
+ int ChannelID(void) const { return ichannelid; }
const std::string& ChannelDisplayname(void) const { return channeldisplayname; }
time_t StartTime(void) const { return starttime; }
time_t StopTime(void) const { return stoptime; }
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/utils.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/utils.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/utils.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/utils.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -85,6 +85,44 @@
} //namespace Json
+// transform [\\nascat\qrecordings\NCIS\2012-05-15_20-30_SBS 6_NCIS.ts]
+// into [smb://user:password@nascat/qrecordings/NCIS/2012-05-15_20-30_SBS 6_NCIS.ts]
+std::string ToCIFS(std::string& UNCName)
+{
+ std::string CIFSname = UNCName;
+ std::string SMBPrefix = "smb://";
+ size_t found;
+ while ((found = CIFSname.find("\\")) != std::string::npos)
+ {
+ CIFSname.replace(found, 1, "/");
+ }
+ CIFSname.erase(0,2);
+ CIFSname.insert(0, SMBPrefix);
+ return CIFSname;
+}
+
+
+// transform [smb://user:password@nascat/qrecordings/NCIS/2012-05-15_20-30_SBS 6_NCIS.ts]
+// into [\\nascat\qrecordings\NCIS\2012-05-15_20-30_SBS 6_NCIS.ts]
+std::string ToUNC(std::string& CIFSName)
+{
+ std::string UNCname = CIFSName;
+
+ UNCname.erase(0,6);
+ size_t found;
+ while ((found = UNCname.find("/")) != std::string::npos)
+ {
+ UNCname.replace(found, 1, "\\");
+ }
+ UNCname.insert(0, "\\\\");
+ return UNCname;
+}
+
+std::string ToUNC(const char* CIFSName)
+{
+ std::string temp = CIFSName;
+ return ToUNC(temp);
+}
#if defined(TARGET_WINDOWS)
//////////////////////////////////////////////////////////////////////////////
//
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/utils.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/utils.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.argustv/src/utils.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.argustv/src/utils.h 2014-01-04 10:28:12.000000000 +0000
@@ -36,6 +36,10 @@
void printValueTree( const Json::Value& value, const std::string& path = "." );
}
+std::string ToCIFS(std::string& UNCName);
+std::string ToUNC(std::string& CIFSName);
+std::string ToUNC(const char* CIFSName);
+
#if defined(TARGET_WINDOWS)
namespace UTF8Util
{
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/addon/addon.xml.in xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/addon/addon.xml.in
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/addon/addon.xml.in 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/addon/addon.xml.in 2014-05-04 06:40:42.000000000 +0000
@@ -1,24 +1,162 @@
-
+
+ የ PVR ደንበኛ ናሙና
+ Демонстрация на ПВР клиента
+ Client Demo PVR
+ Ukázkový klient PVR
+ Dangosydd Rhaglen Rhagleni
+ Demo PVR Klient
+ Demo PVR Client
+ Πελάτης PVR Demo
Demo PVR Client
+ Demo PVR Client
+ Demo Cliente PVR
+ Cliente PVR demo
+ Cliente Demo PVR
+ Demo PVR klient
+ PVR Bezeroaren Demoa
+ Client PVR de démonstration
+ Client numériscope de démo
+ Cliente PVR Demo
+ הדגמה לקוח PVR
+ Demo PVR klijent
+ Demo PVR ügyfél
+ Klien Demo PVR
+ Client PVR Demo
+ デモ PVR クライアント
+ 데모 PVR 클라이언트
+ Demo PVR klients
+ Демо за PVR клиент
+ Kline PVR Demo
+ PVR Client သရုပ်ပြမှု့
+ Demo PVR cliënt
+ Demo PVR-klient
+ Demo klienta PVR
+ Cliente PVR Demo
+ Cliente de PVR de Demonstração
+ Demo client PVR
+ Демонстрация клиента PVR
+ Demo PVR Klient
+ Demo odjemalec PVR
+ Пробни PVR клијент
+ Demo PVR Klient
+ PVR கிளையன் செயல்முறை
+ Муштарии намоишии PVR
+ PVR Tanıtım İstemcisi
+ Демонстраційний клієнт для PVR
+ Demo PVR
+ PVR 演示客户端
+ 演示PVR客戶端
+ የ PVR ደንበኛ ናሙና
+ Демонстрация на ПВР клиента
+ Client Demo PVR
+ Ukázkový klient PVR
+ Dangosydd Rhaglen Rhagleni
+ Demo PVR Klient
+ Demo PVR Client
+ Πελάτης PVR Demo
Demo PVR Client
+ Demo PVR Client
+ Demo Cliente PVR
+ Cliente PVR demo
+ Cliente Demo PVR
+ Demo PVR klient
+ PVR Bezeroaren Demoa
+ Client PVR de démonstration
+ Client numériscope de démo
+ Cliente PVR Demo
+ הדגמה לקוח PVR
+ Demo PVR klijent
+ Demo PVR ügyfél
+ Demo Klien PVR
+ Client PVR Demo
+ デモ PVR クライアント
+ 데모 PVR 클라이언트
+ Demo PVR klients
+ Демо за PVR клиент
+ Klien PVR Demo
+ PVR Client သရုပ်ပြမှု့
+ Demo PVR cliënt
+ Demo PVR-klient
+ Demo klienta PVR
+ Cliente PVR Demo
+ Cliente de PVR de Demonstração
+ Demo client PVR
+ Демонстрация клиента PVR
+ Demo PVR Klient
+ Demo odjemalec PVR
+ Пробни PVR клијент
+ Demo PVR Klient
+ PVR கிளையன் செயல்முறை
+ Муштарии намоишии PVR
+ PVR Tanıtım İstemcisi
+ Демонстраційний клієнт для PVR
+ Demo PVR
+ PVR 演示客户端
+ 演示PVR客戶端
+ ቁራጭ ይዟል
+ Просто съдържа междинни файлове
+ Només conté fragments
+ Obsahuje pouze pahýly funkcí
+ Bonyn yn unig
+ Indeholder kun stumper
+ Enthält nur Fragmente
+ Περιέχει μόνο εικονικά κανάλια
Just contains stubs
+ Just contains stubs
+ Sólo contiene fragmentos
+ contiene sólo marcadores
+ Solo contiene talones
+ Sisaldab ainult juppe
+ Kodearen puskak ditu
+ Ne contient que des clips
+ Ne contient que des fragments
+ Só contén fragmentos
+ רק מכיל stubs
+ Samo sadrži kratke informacije
+ Csak tesztfunkciókat tartalmaz
+ Hanya mengandung stub
+ Contiene solo tronconi
+ 単なるスタブです
+ Satur tikai nepabeigtas lietas
+ некакви записи
+ Hanya mengandungi stub
+ stub များသာပါဝင်နေခြင်း
+ Bevat enkel stubs
+ Inneholder kun stubber
+ Tylko symuluje działanie
+ Só contém fragmentos
+ Só contém esboços
+ Contine numai cioturi
+ Содержит заглушки
+ Obsahuje len útržky
+ Vsebuje le fiktivne vsebine
+ Садржи само назнаке садржаја
+ Innehåller bara stubbar
+ செயல் இடங்கள் உள்ளன
+ Танҳо дорои сарпӯшак мебошад
+ Sadece taslakları içerir
+ Не містить нічого
+ Chỉ chứa phần tử sơ khai
+ 只包含存根
+ 只包含 Stubs
@OS@
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/Makefile.am xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/Makefile.am
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/Makefile.am 2013-12-13 13:17:21.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/Makefile.am 2014-01-04 10:28:12.000000000 +0000
@@ -10,7 +10,7 @@
LIBNAME = libpvrdemo-addon
lib_LTLIBRARIES = libpvrdemo-addon.la
-LIBS = @abs_top_builddir@/lib/tinyxml/libtinyxml.la
+LIBS = @abs_top_srcdir@/lib/tinyxml/libtinyxml.la
include ../Makefile.include.am
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/project/VS2010Express/pvrclient_demo.vcxproj xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/project/VS2010Express/pvrclient_demo.vcxproj
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/project/VS2010Express/pvrclient_demo.vcxproj 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/project/VS2010Express/pvrclient_demo.vcxproj 2014-01-04 10:28:12.000000000 +0000
@@ -54,7 +54,7 @@
Level3
Disabled
..\..\..\..\xbmc;..\..\..\..\lib;..\..\..\..\lib\platform\windows
- _WINDLL;_CRT_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;_WINSOCKAPI_;%(PreprocessorDefinitions)
+ _WINDLL;TARGET_WINDOWS;_CRT_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;_WINSOCKAPI_;%(PreprocessorDefinitions)
MultiThreadedDebug
@@ -69,7 +69,7 @@
true
true
..\..\..\..\xbmc;..\..\..\..\lib;..\..\..\..\lib\platform\windows
- _WINDLL;_CRT_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;_WINSOCKAPI_;%(PreprocessorDefinitions)
+ _WINDLL;TARGET_WINDOWS;_CRT_SECURE_NO_WARNINGS;_USE_32BIT_TIME_T;_WINSOCKAPI_;%(PreprocessorDefinitions)
MultiThreaded
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/src/client.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/src/client.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/src/client.cpp 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/src/client.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -125,6 +125,10 @@
{
}
+void ADDON_Announce(const char *flag, const char *sender, const char *message, const void *data)
+{
+}
+
/***********************************************************
* PVR Client AddOn specific public library functions
***********************************************************/
@@ -141,6 +145,18 @@
return strMinApiVersion;
}
+const char* GetGUIAPIVersion(void)
+{
+ static const char *strGuiApiVersion = XBMC_GUI_API_VERSION;
+ return strGuiApiVersion;
+}
+
+const char* GetMininumGUIAPIVersion(void)
+{
+ static const char *strMinGuiApiVersion = XBMC_GUI_MIN_API_VERSION;
+ return strMinGuiApiVersion;
+}
+
PVR_ERROR GetAddonCapabilities(PVR_ADDON_CAPABILITIES* pCapabilities)
{
pCapabilities->bSupportsEPG = true;
@@ -289,7 +305,7 @@
/** UNUSED API FUNCTIONS */
PVR_ERROR DialogChannelScan(void) { return PVR_ERROR_NOT_IMPLEMENTED; }
-PVR_ERROR CallMenuHook(const PVR_MENUHOOK &menuhook) { return PVR_ERROR_NOT_IMPLEMENTED; }
+PVR_ERROR CallMenuHook(const PVR_MENUHOOK &menuhook, const PVR_MENUHOOK_DATA &item) { return PVR_ERROR_NOT_IMPLEMENTED; }
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; }
@@ -313,6 +329,7 @@
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; }
+PVR_ERROR GetRecordingEdl(const PVR_RECORDING&, PVR_EDL_ENTRY[], int*) { return PVR_ERROR_NOT_IMPLEMENTED; };
int GetTimersAmount(void) { return -1; }
PVR_ERROR GetTimers(ADDON_HANDLE handle) { return PVR_ERROR_NOT_IMPLEMENTED; }
PVR_ERROR AddTimer(const PVR_TIMER &timer) { return PVR_ERROR_NOT_IMPLEMENTED; }
@@ -326,4 +343,7 @@
bool CanSeekStream(void) { return false; }
bool SeekTime(int,bool,double*) { return false; }
void SetSpeed(int) {};
+time_t GetPlayingTime() { return 0; }
+time_t GetBufferTimeStart() { return 0; }
+time_t GetBufferTimeEnd() { return 0; }
}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/src/client.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/src/client.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/src/client.h 2013-12-13 13:17:17.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/src/client.h 2014-01-04 10:28:12.000000000 +0000
@@ -22,6 +22,7 @@
#include "libXBMC_addon.h"
#include "libXBMC_pvr.h"
+#include "libXBMC_gui.h"
extern bool m_bCreated;
extern std::string g_strUserPath;
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/src/PVRDemoData.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/src/PVRDemoData.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.demo/src/PVRDemoData.cpp 2012-11-21 10:53:40.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.demo/src/PVRDemoData.cpp 2014-01-04 10:28:19.000000000 +0000
@@ -259,7 +259,7 @@
time_t timeNow = time(NULL);
struct tm* now = localtime(&timeNow);
- int delim = strTmp.Find(':');
+ CStdString::size_type delim = strTmp.Find(':');
if (delim != CStdString::npos)
{
now->tm_hour = (int)strtol(strTmp.Left(delim), NULL, 0);
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/addon.xml.in xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/addon.xml.in
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/addon.xml.in 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/addon.xml.in 2014-01-28 20:43:50.000000000 +0000
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+ PVR Plugin for DVBLink
+ PVR Plugin for DVBLink from DvbLogic.com; supporting streaming of Live TV & Recordings, EPG, Timers
+ This is unstable software! The authors are in no way responsible for failed recordings, incorrect timers, wasted hours, or any other undesirable effects..
+ @OS@
+
+
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/changelog.txt xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/changelog.txt
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/changelog.txt 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/changelog.txt 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,70 @@
+[B]Version 1.9.0[/B]
+Sync with XBMC PVR API v1.9.0
+
+[B]Version 1.7.0[/B]
+Fixed: Recordings on DVBLINK 4.5.3
+Fixed: Closing socket file handles
+Added: Support for Android
+Changed: No longer show errors on failed to receive recordings / timers list.
+
+[B]Version 1.6.2[/B]
+Fixed: Authentication issue on unix / linux based platforms
+Added: Refresh Timers and Recordings list every 30 seconds
+Changed: Timeshift buffer path now refers to a folder path
+Delete timeshift buffer when nolonger needed
+
+[B]Version 1.6.1[/B]
+Added: Timeshift support (Http only)
+Added: Information about backend diskspace (System->System Info->PVR Service)
+Added: Option for enabling information notifications (Default:disabled)
+Updated language files
+General code style clean up to be more compliant with XBMC coding style
+
+[B]Version 1.6.0.11[/B]
+Removed wrong danish language from addon description
+
+[B]Version 1.6.0.10[/B]
+Fixed: Timer related crash when addon could not find program information for EPG based timers
+
+[B]Version 1.6.0.9[/B]
+Added: Better notification and logging of status / error information
+
+[B]Version 1.6.0.8[/B]
+Fixed: Not all schedules shown
+Fixed: Not able to use username/password (Windows only)
+
+[B]Version 1.6.0.7[/B]
+Builds for all major os: windows,linux and osx
+Updated to XBMC Frodo Beta 2
+Updated to newest libdvblinkremote api
+Enabled editing of timers
+Updated version number to reflect other pvr addons
+Removed dependency on libcurl
+
+[B]0.0.6[/B]
+Fixed: Bug where addon did not show channels / EPG when using MCE Recorder
+
+[B]0.0.5[/B]
+Fixed: Bug where dvblink port from setting was not used
+
+[B]0.0.4[/B]
+Fixed: EPG data from when using MCE recorder
+Added: Preliminary (Have not been tested) support for transcoding
+Changed: Reordered settings
+
+[B]0.0.3[/B]
+Added: Fix for using channel handle instead of client id when stopping channels
+
+[B]0.0.2[/B]
+Added: Scheduling of recordings using EPG based timers
+Added: Enabled removal of timers
+Added: Listing of recordings (using DVBLink build in recorder)
+Added: Playback of recordings (using DVBLink build in recorder)
+Added: Enabled removal of recordings (using DVBLink build in recorder)
+Fixed: Memory several leaks
+Removed: Not yet implemented steaming and timeout options
+
+[B]0.0.1[/B]
+Beta release
+Playback of live tv and radio using raw http
+Listing of EPG
Binary files /tmp/1FTPYs_Qq_/xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/icon.png and /tmp/njK1ftphDV/xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/icon.png differ
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/resources/language/Danish/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/resources/language/Danish/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/resources/language/Danish/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/resources/language/Danish/strings.po 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,138 @@
+# XBMC Media Center language file
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC-Addons\n"
+"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n"
+"POT-Creation-Date: 2012-12-11 20:52+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+msgctxt "#30000"
+msgid "General"
+msgstr "Generelt"
+
+msgctxt "#30001"
+msgid "Server Address"
+msgstr "Server adresse"
+
+msgctxt "#30002"
+msgid "Server Port"
+msgstr "Server Port"
+
+msgctxt "#30003"
+msgid "Client name"
+msgstr "Klient navn"
+
+msgctxt "#30004"
+msgid "Connection timeout (s)"
+msgstr "Forbindelse timeout"
+
+msgctxt "#30005"
+msgid "Username"
+msgstr "Brugernavn"
+
+msgctxt "#30006"
+msgid "Password"
+msgstr "Kodeord"
+
+msgctxt "#30100"
+msgid "Stream"
+msgstr "Stream"
+
+msgctxt "#30102"
+msgid "Stream format"
+msgstr "Stream format"
+
+msgctxt "#30103"
+msgid "Height"
+msgstr "Højde"
+
+msgctxt "#30104"
+msgid "Width"
+msgstr "Brede"
+
+msgctxt "#30105"
+msgid "Bitrate"
+msgstr "Bitrate"
+
+msgctxt "#30106"
+msgid "Audio track"
+msgstr "Lyd spor"
+
+msgctxt "#30107"
+msgid "HTTP"
+msgstr "HTTP"
+
+msgctxt "#30108"
+msgid "RTP"
+msgstr "RTP"
+
+msgctxt "#30109"
+msgid "HLS"
+msgstr "HLS"
+
+msgctxt "#30110"
+msgid "ASF"
+msgstr "ASF"
+
+msgctxt "#30111"
+msgid "Enable Timeshift"
+msgstr "Aktiver timestift"
+
+msgctxt "#30112"
+msgid "Timeshift buffer path"
+msgstr "Timeshift buffer sti"
+
+msgctxt "#30200"
+msgid "Advanced"
+msgstr "Advanceret"
+
+msgctxt "#30201"
+msgid "Use channel handle instead of client id"
+msgstr "Brug kanal handle istedet for klient id"
+
+msgctxt "#30202"
+msgid "Show information messages"
+msgstr "Vis infomations beskeder"
+
+msgctxt "#32001"
+msgid "Connected to DVBLink Server '%s'"
+msgstr "Forbundet til DVBLink Server '%s'"
+
+msgctxt "#32002"
+msgid "Found '%d' channels"
+msgstr "Fundet'%d' kanaler"
+
+msgctxt "#32003"
+msgid "Could not connect to DVBLink Server '%s' (Error code : %d)"
+msgstr "Kunne ikke forbinde til DVBLink Server '%s' (Fejl kode : %d)"
+
+msgctxt "#32004"
+msgid "Could not get recordings (Error code : %d)"
+msgstr "Kunne ikke hente optagelser (Fejl kode : %d)"
+
+msgctxt "#32006"
+msgid "Could not get timers(Error code : %d)"
+msgstr "Kunne ikke hente timers (Fejl kode : %d)"
+
+msgctxt "#32007"
+msgid "Found %d EPG timers"
+msgstr "Fundet %d EPG timers"
+
+msgctxt "#32008"
+msgid "Found %d manual timers"
+msgstr "Fundet %d manual timers"
+
+msgctxt "#32009"
+msgid "Found %d recordings"
+msgstr "Fundet %d optagelser"
+
+msgctxt "#32010"
+msgid "Could not get stream for channel %s (Error code : %d)"
+msgstr "Kunne ikke få stream til kanal %s (Fejl kode : %d)"
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/resources/language/English/strings.po xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/resources/language/English/strings.po
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/resources/language/English/strings.po 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/resources/language/English/strings.po 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,153 @@
+# XBMC Media Center language file
+msgid ""
+msgstr ""
+"Project-Id-Version: XBMC-Addons\n"
+"Report-Msgid-Bugs-To: alanwww1@xbmc.org\n"
+"POT-Creation-Date: 2012-12-11 20:52+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#settings labels
+
+msgctxt "#30000"
+msgid "General"
+msgstr ""
+
+msgctxt "#30001"
+msgid "Server Address"
+msgstr ""
+
+msgctxt "#30002"
+msgid "Server Port"
+msgstr ""
+
+msgctxt "#30003"
+msgid "Client name"
+msgstr ""
+
+msgctxt "#30004"
+msgid "Connection timeout (s)"
+msgstr ""
+
+msgctxt "#30005"
+msgid "Username"
+msgstr ""
+
+msgctxt "#30006"
+msgid "Password"
+msgstr ""
+
+#empty strings from id 30007 to 30099
+
+msgctxt "#30100"
+msgid "Stream"
+msgstr ""
+
+#empty string with id 30101
+
+msgctxt "#30102"
+msgid "Stream format"
+msgstr ""
+
+msgctxt "#30103"
+msgid "Height"
+msgstr ""
+
+msgctxt "#30104"
+msgid "Width"
+msgstr ""
+
+msgctxt "#30105"
+msgid "Bitrate"
+msgstr ""
+
+msgctxt "#30106"
+msgid "Audio track"
+msgstr ""
+
+msgctxt "#30107"
+msgid "HTTP"
+msgstr ""
+
+msgctxt "#30108"
+msgid "RTP"
+msgstr ""
+
+msgctxt "#30109"
+msgid "HLS"
+msgstr ""
+
+msgctxt "#30110"
+msgid "ASF"
+msgstr ""
+
+msgctxt "#30111"
+msgid "Enable Timeshift"
+msgstr ""
+
+msgctxt "#30112"
+msgid "Timeshift buffer path"
+msgstr ""
+
+#empty strings from id 30111 to 30199
+
+msgctxt "#30200"
+msgid "Advanced"
+msgstr ""
+
+#Messages labels
+
+msgctxt "#30201"
+msgid "Use channel handle instead of client id"
+msgstr ""
+
+msgctxt "#30202"
+msgid "Show information messages"
+msgstr ""
+
+#category labels
+#empty strings from id 30203 to 32000
+
+msgctxt "#32001"
+msgid "Connected to DVBLink Server '%s'"
+msgstr ""
+
+msgctxt "#32002"
+msgid "Found '%d' channels"
+msgstr ""
+
+msgctxt "#32003"
+msgid "Could not connect to DVBLink Server '%s' (Error code : %d)"
+msgstr ""
+
+msgctxt "#32004"
+msgid "Could not get recordings (Error code : %d)"
+msgstr ""
+
+#empty string with id 32005
+
+msgctxt "#32006"
+msgid "Could not get timers(Error code : %d)"
+msgstr ""
+
+msgctxt "#32007"
+msgid "Found %d EPG timers"
+msgstr ""
+
+msgctxt "#32008"
+msgid "Found %d manual timers"
+msgstr ""
+
+msgctxt "#32009"
+msgid "Found %d recordings"
+msgstr ""
+
+msgctxt "#32010"
+msgid "Could not get stream for channel %s (Error code : %d)"
+msgstr ""
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/resources/settings.xml xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/resources/settings.xml
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/addon/resources/settings.xml 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/addon/resources/settings.xml 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/Makefile.am xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/Makefile.am
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/Makefile.am 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/Makefile.am 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,25 @@
+#
+# Makefile for the DVBLink add-on for XBMC PVR
+#
+# See the README for copyright information and
+# how to reach the author.
+#
+
+ADDONBINNAME = XBMC_DVBLink
+ADDONNAME = pvr.dvblink
+LIBNAME = libdvblink-addon
+lib_LTLIBRARIES = libdvblink-addon.la
+
+LIBS = @abs_top_srcdir@/lib/libdvblinkremote/libdvblinkremote.la
+
+include ../Makefile.include.am
+
+INCLUDES+=-Isrc
+
+libdvblink_addon_la_SOURCES = src/client.cpp \
+ src/base64.cpp \
+ src/HttpPostClient.cpp \
+ src/TimeShiftBuffer.cpp \
+ src/DVBLinkClient.cpp
+libdvblink_addon_la_LDFLAGS = @TARGET_LDFLAGS@
+
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/project/VS2010Express/pvrclient_dvblink.vcxproj xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/project/VS2010Express/pvrclient_dvblink.vcxproj
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/project/VS2010Express/pvrclient_dvblink.vcxproj 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/project/VS2010Express/pvrclient_dvblink.vcxproj 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,120 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ {F9F3E7B6-EF4C-4BD8-A921-3DE4C4268945}
+ pvrclient_dvblink
+ pvr.dvblink
+
+
+
+ DynamicLibrary
+ true
+ MultiByte
+
+
+ DynamicLibrary
+ false
+ true
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\..\addon\
+
+
+ .dll
+ XBMC_DVBLink_win32
+
+
+ ..\..\addon\
+
+
+ .dll
+ XBMC_DVBLink_win32
+
+
+
+ Level3
+ Disabled
+ ..\..\..\..\xbmc;..\..\..\..\lib;..\..\..\..\lib\platform\windows;../../../../project/BuildDependencies/include;
+ _WINDLL;TARGET_WINDOWS;TSREADER;_WINSOCKAPI_;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ true
+ ws2_32.lib;kernel32.lib;user32.lib;%(AdditionalDependencies)
+ $(SolutionDir)$(Configuration)\
+
+
+ false
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ ..\..\..\..\xbmc;..\..\..\..\lib;..\..\..\..\lib\platform\windows;../../../../project/BuildDependencies/include;
+ _WINDLL;TARGET_WINDOWS;TSREADER;_WINSOCKAPI_;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ true
+ true
+ true
+ ws2_32.lib;kernel32.lib;user32.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {db826a81-e848-4e39-be17-e779a49e2960}
+
+
+ {16a1d446-5415-444e-a7b4-f35b7da7ee8c}
+
+
+ {fe4573f6-a794-4ad3-b37f-49e51f1140e6}
+
+
+
+
+
+
\ No newline at end of file
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/project/VS2010Express/pvrclient_dvblink.vcxproj.filters xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/project/VS2010Express/pvrclient_dvblink.vcxproj.filters
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/project/VS2010Express/pvrclient_dvblink.vcxproj.filters 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/project/VS2010Express/pvrclient_dvblink.vcxproj.filters 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,51 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/base64.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/base64.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/base64.cpp 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/base64.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,131 @@
+/*
+ base64.cpp and base64.h
+
+ Copyright (C) 2004-2008 René Nyffenegger
+
+ This source code is provided 'as-is', without any express or implied
+ warranty. In no event will the author be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this source code must not be misrepresented; you must not
+ claim that you wrote the original source code. If you use this source code
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original source code.
+
+ 3. This notice may not be removed or altered from any source distribution.
+
+ René Nyffenegger rene.nyffenegger@adp-gmbh.ch
+
+ Code modified to meet XBMC stand coding style by Palle Ehmsen (Palle@barcodemadness.com) 2012
+*/
+
+#include "base64.h"
+#include
+
+static const std::string BASE64_CHARS =
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ "abcdefghijklmnopqrstuvwxyz"
+ "0123456789+/";
+
+
+static inline bool is_base64(unsigned char c)
+{
+ return (isalnum(c) || (c == '+') || (c == '/'));
+}
+
+std::string base64_encode(char const* bytes_to_encode, unsigned int in_len)
+{
+ std::string ret;
+ int i = 0;
+ int j = 0;
+ unsigned char char_array_3[3];
+ unsigned char char_array_4[4];
+
+ while (in_len--)
+ {
+ char_array_3[i++] = *(bytes_to_encode++);
+ if (i == 3)
+ {
+ char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
+ char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
+ char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
+ char_array_4[3] = char_array_3[2] & 0x3f;
+
+ for (i = 0; (i <4) ; i++)
+ ret += BASE64_CHARS[char_array_4[i]];
+ i = 0;
+ }
+ }
+
+ if (i)
+ {
+ for (j = i; j < 3; j++)
+ char_array_3[j] = '\0';
+
+ char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
+ char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
+ char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
+ char_array_4[3] = char_array_3[2] & 0x3f;
+
+ for (j = 0; (j < i + 1); j++)
+ ret += BASE64_CHARS[char_array_4[j]];
+
+ while ((i++ < 3))
+ ret += '=';
+
+ }
+ return ret;
+}
+
+std::string base64_decode(std::string const& encoded_string)
+{
+ int in_len = encoded_string.size();
+ int i = 0;
+ int j = 0;
+ int in_ = 0;
+ unsigned char char_array_4[4], char_array_3[3];
+ std::string ret;
+
+ while (in_len-- && ( encoded_string[in_] != '=') && is_base64(encoded_string[in_]))
+ {
+ char_array_4[i++] = encoded_string[in_]; in_++;
+ if (i ==4)
+ {
+ for (i = 0; i <4; i++)
+ char_array_4[i] = BASE64_CHARS.find(char_array_4[i]);
+
+ char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4);
+ char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2);
+ char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3];
+
+ for (i = 0; (i < 3); i++)
+ ret += char_array_3[i];
+ i = 0;
+ }
+ }
+
+ if (i)
+ {
+ for (j = i; j <4; j++)
+ char_array_4[j] = 0;
+
+ for (j = 0; j <4; j++)
+ char_array_4[j] = BASE64_CHARS.find(char_array_4[j]);
+
+ char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4);
+ char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2);
+ char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3];
+
+ for (j = 0; (j < i - 1); j++)
+ ret += char_array_3[j];
+ }
+
+ return ret;
+}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/base64.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/base64.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/base64.h 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/base64.h 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,4 @@
+#include
+
+std::string base64_encode(char const* , unsigned int len);
+std::string base64_decode(std::string const& s);
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/client.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/client.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/client.cpp 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/client.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,790 @@
+/*
+ * Copyright (C) 2005-2012 Team XBMC
+ * http://xbmc.org
+
+ * Copyright (C) 2012 Palle Ehmsen(Barcode Madness)
+ * http://www.barcodemadness.com
+ *
+ * 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 "DVBLinkClient.h"
+#include "platform/util/util.h"
+
+using namespace std;
+using namespace ADDON;
+
+
+#ifdef TARGET_WINDOWS
+#define snprintf _snprintf
+#endif
+
+bool m_bCreated = false;
+ADDON_STATUS m_CurStatus = ADDON_STATUS_UNKNOWN;
+
+
+std::string g_strUserPath = "";
+std::string g_strClientPath = "";
+
+DVBLinkClient* dvblinkclient = NULL;
+
+std::string g_szHostname = DEFAULT_HOST; ///< The Host name or IP of the DVBLink Server
+long g_lPort = DEFAULT_PORT; ///< The DVBLink Connect Server listening port (default: 8080)
+int g_iConnectTimeout = DEFAULT_TIMEOUT; ///< The Socket connection timeout
+DVBLINK_STREAMTYPE g_eStreamType = DEFAULT_STREAMTYPE; ///< Stream type used by video stream
+std::string g_szClientname = DEFAULT_CLIENTNAME; ///< Name of dvblink client
+std::string g_szUsername = DEFAULT_USERNAME; ///< Username
+std::string g_szPassword = DEFAULT_PASSWORD; ///< Password
+bool g_bUseChlHandle = DEFAULT_USECHLHANDLE; ///< Use channel handle instead of client id
+bool g_bShowInfoMSG = DEFAULT_SHOWINFOMSG; ///< Show information messages
+int g_iHeight = DEFAULT_HEIGHT; ///< Height of stream when using transcoding
+int g_iWidth = DEFAULT_WIDTH; ///< Width of stream when using transcoding
+int g_iBitrate = DEFAULT_BITRATE; ///< Bitrate of stream when using transcoding
+std::string g_szAudiotrack = DEFAULT_AUDIOTRACK; ///< Audiotrack to include in stream when using transcoding
+std::string g_szTimeShiftBufferPath = DEFAULT_TIMESHIFTBUFFERPATH; ///< Path to timeshift buffer
+bool g_bUseTimeshift = DEFAULT_USETIMESHIFT; ///< Use timeshift
+CHelper_libXBMC_addon *XBMC = NULL;
+CHelper_libXBMC_pvr *PVR = NULL;
+
+extern "C" {
+
+
+ADDON_STATUS ADDON_Create(void* hdl, void* props)
+{
+ if (!hdl || !props)
+ return ADDON_STATUS_UNKNOWN;
+
+ PVR_PROPERTIES* pvrprops = (PVR_PROPERTIES*)props;
+
+ XBMC = new CHelper_libXBMC_addon;
+ if (!XBMC->RegisterMe(hdl))
+ {
+ SAFE_DELETE(XBMC);
+ return ADDON_STATUS_PERMANENT_FAILURE;
+ }
+
+ PVR = new CHelper_libXBMC_pvr;
+ if (!PVR->RegisterMe(hdl))
+ {
+ SAFE_DELETE(PVR);
+ SAFE_DELETE(XBMC);
+ return ADDON_STATUS_PERMANENT_FAILURE;
+ }
+
+ XBMC->Log(LOG_DEBUG, "%s - Creating the PVR DVBlink add-on", __FUNCTION__);
+
+ m_CurStatus = ADDON_STATUS_UNKNOWN;
+ g_strUserPath = pvrprops->strUserPath;
+ g_strClientPath = pvrprops->strClientPath;
+
+ char * buffer = (char*) malloc(128);
+ buffer[0] = 0;
+
+ /* Connection settings */
+ /***********************/
+
+ 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 '127.0.0.1' as default");
+ g_szHostname = DEFAULT_HOST;
+ }
+
+ /* Read setting "client" from settings.xml */
+ if (XBMC->GetSetting("client", buffer))
+ {
+ g_szClientname = buffer;
+ }
+ else
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'clientname' setting, falling back to 'xbmc' as default");
+ g_szClientname = DEFAULT_CLIENTNAME;
+ }
+
+ /* Read setting "username" from settings.xml */
+ if (XBMC->GetSetting("username", buffer))
+ {
+ g_szUsername = buffer;
+ }
+ else
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'username' setting, falling back to '' as default");
+ g_szUsername = DEFAULT_USERNAME;
+ }
+
+ /* Read setting "password" from settings.xml */
+ if (XBMC->GetSetting("password", buffer))
+ {
+ g_szPassword = buffer;
+ }
+ else
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'password' setting, falling back to '' as default");
+ g_szPassword = DEFAULT_PASSWORD;
+ }
+
+ /* Read setting "streamtype" from settings.xml */
+ if (!XBMC->GetSetting("streamtype", &g_eStreamType))
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'streamtype' setting, falling back to 'http' as default");
+ g_eStreamType = DEFAULT_STREAMTYPE;
+ }
+
+ /* Read setting "port" from settings.xml */
+ if (!XBMC->GetSetting("port", &g_lPort))
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'port' setting, falling back to '8080' as default");
+ g_lPort = DEFAULT_PORT;
+ }
+
+ /* 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 "ch_handle" from settings.xml */
+ if (!XBMC->GetSetting("ch_handle", &g_bUseChlHandle))
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'ch_handle' setting, falling back to 'true' as default");
+ g_bUseChlHandle = DEFAULT_USECHLHANDLE;
+ }
+
+ /* Read setting "timeshift" from settings.xml */
+ if (!XBMC->GetSetting("timeshift", &g_bUseTimeshift))
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'timeshift' setting, falling back to 'false' as default");
+ g_bUseTimeshift = DEFAULT_USETIMESHIFT;
+ }
+
+ /* Read setting "timeshiftpath" from settings.xml */
+ if (XBMC->GetSetting("timeshiftpath", buffer))
+ {
+ g_szTimeShiftBufferPath = buffer;
+ }
+ else
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'timeshiftpath' setting, falling back to 'special://userdata/addon_data/pvr.dvblink/' as default");
+ g_szTimeShiftBufferPath = DEFAULT_TIMESHIFTBUFFERPATH;
+ }
+
+
+ /* Read setting "ch_handle" from settings.xml */
+ if (!XBMC->GetSetting("showinfomsg", &g_bShowInfoMSG))
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'showinfomsg' setting, falling back to 'true' as default");
+ g_bShowInfoMSG = DEFAULT_SHOWINFOMSG;
+ }
+
+ /* Read setting "height" from settings.xml */
+ if (!XBMC->GetSetting("height", &g_iHeight))
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'Height' setting, falling back to '720' as default");
+ g_iHeight = DEFAULT_HEIGHT;
+ }
+
+ /* Read setting "width" from settings.xml */
+ if (!XBMC->GetSetting("width", &g_iWidth))
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'Width' setting, falling back to '576' as default");
+ g_iWidth = DEFAULT_WIDTH;
+ }
+
+ /* Read setting "bitrate" from settings.xml */
+ if (!XBMC->GetSetting("bitrate", &g_iBitrate))
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'Biterate' setting, falling back to '512' as default");
+ g_iBitrate = DEFAULT_BITRATE;
+ }
+
+ /* Read setting "audiotrack" from settings.xml */
+ if (XBMC->GetSetting("audiotrack", buffer))
+ {
+ g_szAudiotrack = buffer;
+ }else
+ {
+ /* If setting is unknown fallback to defaults */
+ XBMC->Log(LOG_ERROR, "Couldn't get 'Audiotrack' setting, falling back to 'eng' as default");
+ g_szAudiotrack = DEFAULT_AUDIOTRACK;
+ }
+
+ /* Log the current settings for debugging purposes */
+ XBMC->Log(LOG_DEBUG, "settings: streamtype='%i' host='%s', port=%i, timeout=%i", g_eStreamType, g_szHostname.c_str(), g_lPort, g_iConnectTimeout);
+
+ dvblinkclient = new DVBLinkClient(XBMC,PVR, g_szClientname, g_szHostname, g_lPort, g_bShowInfoMSG, g_szUsername, g_szPassword, g_bUseTimeshift, g_szTimeShiftBufferPath);
+
+ m_CurStatus = ADDON_STATUS_OK;
+ m_bCreated = true;
+ return m_CurStatus;
+}
+
+ADDON_STATUS ADDON_GetStatus()
+{
+ return m_CurStatus;
+}
+
+void ADDON_Destroy()
+{
+ delete dvblinkclient;
+ m_bCreated = false;
+ 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 == "client")
+ {
+ string tmp_sClientname;
+ XBMC->Log(LOG_INFO, "Changed Setting 'client' from %s to %s", g_szClientname.c_str(), (const char*) settingValue);
+ tmp_sClientname = g_szClientname;
+ g_szClientname = (const char*) settingValue;
+ if (tmp_sClientname != g_szClientname)
+ return ADDON_STATUS_NEED_RESTART;
+ }
+ else if (str == "username")
+ {
+ string tmp_sUsername;
+ XBMC->Log(LOG_INFO, "Changed Setting 'username' from %s to %s", g_szUsername.c_str(), (const char*) settingValue);
+ tmp_sUsername = g_szUsername;
+ g_szUsername = (const char*) settingValue;
+ if (tmp_sUsername != g_szUsername)
+ return ADDON_STATUS_NEED_RESTART;
+ }
+ else if (str == "password")
+ {
+ string tmp_sPassword;
+ XBMC->Log(LOG_INFO, "Changed Setting 'password' from %s to %s", g_szPassword.c_str(), (const char*) settingValue);
+ tmp_sPassword = g_szPassword;
+ g_szPassword = (const char*) settingValue;
+ if (tmp_sPassword != g_szPassword)
+ return ADDON_STATUS_NEED_RESTART;
+ }
+ else if (str == "streamtype")
+ {
+ DVBLINK_STREAMTYPE tmp_eStreamtype;
+ XBMC->Log(LOG_INFO, "Changed Setting 'streamtype' from %i to %i", g_eStreamType, *(const DVBLINK_STREAMTYPE *) settingValue);
+ tmp_eStreamtype = g_eStreamType;
+ g_eStreamType = *((const DVBLINK_STREAMTYPE *)settingValue);
+ if (tmp_eStreamtype != g_eStreamType)
+ return ADDON_STATUS_NEED_RESTART;
+ }
+ else if (str == "port")
+ {
+ XBMC->Log(LOG_INFO, "Changed Setting 'port' from %i to %i", g_lPort, *(int*) settingValue);
+ if (g_lPort != (long)(*(int*) settingValue))
+ {
+ g_lPort = (long)(*(int*) settingValue);
+ XBMC->Log(LOG_INFO, "Changed Setting 'port' to %i", g_lPort);
+ return ADDON_STATUS_NEED_RESTART;
+ }
+ }
+ 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 == "ch_handle")
+ {
+ XBMC->Log(LOG_INFO, "Changed Setting 'ch_handle' from %u to %u", g_bUseChlHandle, *(int*) settingValue);
+ g_bUseChlHandle = *(bool*) settingValue;
+ }
+ else if (str == "timeshift")
+ {
+ XBMC->Log(LOG_INFO, "Changed Setting 'timeshift' from %u to %u", g_bUseTimeshift, *(int*) settingValue);
+ g_bUseTimeshift = *(bool*) settingValue;
+ return ADDON_STATUS_NEED_RESTART;
+ }
+ else if (str == "timeshiftpath")
+ {
+ string tmp_sTimeShiftBufferPath;
+ XBMC->Log(LOG_INFO, "Changed Setting 'timeshiftpath' from %s to %s", g_szTimeShiftBufferPath.c_str(), (const char*) settingValue);
+ tmp_sTimeShiftBufferPath = g_szTimeShiftBufferPath;
+ g_szTimeShiftBufferPath = (const char*) settingValue;
+ if (tmp_sTimeShiftBufferPath != g_szTimeShiftBufferPath)
+ return ADDON_STATUS_NEED_RESTART;
+ }
+ else if (str == "showinfomsg")
+ {
+ XBMC->Log(LOG_INFO, "Changed Setting 'showinfomsg' from %u to %u", g_bShowInfoMSG, *(int*) settingValue);
+ g_bShowInfoMSG = *(bool*) settingValue;
+ }
+ else if (str == "height")
+ {
+ XBMC->Log(LOG_INFO, "Changed Setting 'height' from %u to %u", g_iHeight, *(int*) settingValue);
+ g_iHeight = *(int*) settingValue;
+ }
+ else if (str == "width")
+ {
+ XBMC->Log(LOG_INFO, "Changed Setting 'width' from %u to %u", g_iWidth, *(int*) settingValue);
+ g_iWidth = *(int*) settingValue;
+ }
+ else if (str == "bitrate")
+ {
+ XBMC->Log(LOG_INFO, "Changed Setting 'bitrate' from %u to %u", g_iBitrate, *(int*) settingValue);
+ g_iBitrate = *(int*) settingValue;
+ }
+ else if (str == "audiotrack")
+ {
+ string tmp_sAudiotrack;
+ XBMC->Log(LOG_INFO, "Changed Setting 'audiotrack' from %s to %s", g_szAudiotrack.c_str(), (const char*) settingValue);
+ tmp_sAudiotrack = g_szAudiotrack;
+ g_szAudiotrack = (const char*) settingValue;
+ if (tmp_sAudiotrack != g_szAudiotrack)
+ return ADDON_STATUS_NEED_RESTART;
+ }
+ return ADDON_STATUS_OK;
+}
+
+void ADDON_Stop()
+{
+}
+
+void ADDON_FreeSettings()
+{
+}
+
+void ADDON_Announce(const char *flag, const char *sender, const char *message, const void *data)
+{
+}
+
+/***********************************************************
+ * PVR Client AddOn specific public library functions
+ ***********************************************************/
+
+const char* GetPVRAPIVersion(void)
+{
+ static const char *strApiVersion = XBMC_PVR_API_VERSION;
+ return strApiVersion;
+}
+
+const char* GetMininumPVRAPIVersion(void)
+{
+ static const char *strMinApiVersion = XBMC_PVR_MIN_API_VERSION;
+ return strMinApiVersion;
+}
+
+const char* GetGUIAPIVersion(void)
+{
+ static const char *strGuiApiVersion = XBMC_GUI_API_VERSION;
+ return strGuiApiVersion;
+}
+
+const char* GetMininumGUIAPIVersion(void)
+{
+ static const char *strMinGuiApiVersion = XBMC_GUI_MIN_API_VERSION;
+ return strMinGuiApiVersion;
+}
+
+PVR_ERROR GetAddonCapabilities(PVR_ADDON_CAPABILITIES* pCapabilities)
+{
+ pCapabilities->bSupportsEPG = true;
+ pCapabilities->bSupportsRecordings = true; //TODO: ADD when possible to see recording
+ pCapabilities->bSupportsTimers = true;
+ pCapabilities->bSupportsTV = true;
+ pCapabilities->bSupportsRadio = true;
+ pCapabilities->bHandlesInputStream = true;
+ return PVR_ERROR_NO_ERROR;
+}
+
+const char *GetBackendName(void)
+{
+ static const char *strBackendName = "DVBLink Connect! Server";
+ return strBackendName;
+}
+
+const char *GetBackendVersion(void)
+{
+ static const char * strBackendVersion = "0.2";
+ return strBackendVersion;
+}
+
+const char *GetConnectionString(void)
+{
+ return g_szHostname.c_str();
+}
+
+PVR_ERROR GetDriveSpace(long long *iTotal, long long *iUsed)
+{
+ if (dvblinkclient)
+ {
+ dvblinkclient->GetDriveSpace(iTotal, iUsed);
+ return PVR_ERROR_NO_ERROR;
+ }
+ return PVR_ERROR_SERVER_ERROR;
+}
+
+PVR_ERROR GetEPGForChannel(ADDON_HANDLE handle, const PVR_CHANNEL &channel, time_t iStart, time_t iEnd)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetEPGForChannel(handle, channel, iStart, iEnd);
+
+ return PVR_ERROR_SERVER_ERROR;
+}
+
+int GetChannelsAmount(void)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetChannelsAmount();
+
+ return -1;
+}
+
+PVR_ERROR GetChannels(ADDON_HANDLE handle, bool bRadio)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetChannels(handle, bRadio);
+
+ return PVR_ERROR_SERVER_ERROR;
+}
+
+bool OpenLiveStream(const PVR_CHANNEL &channel)
+{
+ if (dvblinkclient)
+ return dvblinkclient->OpenLiveStream(channel, g_eStreamType, g_iWidth, g_iHeight, g_iBitrate, g_szAudiotrack);
+ return false;
+}
+
+void CloseLiveStream(void)
+{
+ if (dvblinkclient)
+ dvblinkclient->StopStreaming(g_bUseChlHandle);
+}
+
+const char * GetLiveStreamURL(const PVR_CHANNEL &channel)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetLiveStreamURL(channel, g_eStreamType, g_iWidth, g_iHeight, g_iBitrate, g_szAudiotrack);
+ return "";
+}
+
+int ReadLiveStream(unsigned char *pBuffer, unsigned int iBufferSize)
+{
+ if (dvblinkclient)
+ return dvblinkclient->ReadLiveStream(pBuffer,iBufferSize);
+ return 0;
+}
+
+long long SeekLiveStream(long long iPosition, int iWhence /* = SEEK_SET */)
+{
+ if (dvblinkclient)
+ return dvblinkclient->SeekLiveStream(iPosition,iWhence);
+ return -1;
+}
+
+long long PositionLiveStream(void)
+{
+ if (dvblinkclient)
+ return dvblinkclient->PositionLiveStream();
+ return -1;
+}
+
+long long LengthLiveStream(void)
+{
+ if (dvblinkclient)
+ return dvblinkclient->LengthLiveStream();
+ return -1;
+}
+
+void PauseStream(bool bPaused)
+{
+}
+
+bool CanPauseStream(void)
+{
+ return g_bUseTimeshift;
+}
+
+bool CanSeekStream(void)
+{
+ return g_bUseTimeshift;
+}
+
+int GetTimersAmount(void)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetTimersAmount();
+
+ return -1;
+}
+
+PVR_ERROR GetTimers(ADDON_HANDLE handle)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetTimers(handle);
+
+ return PVR_ERROR_FAILED;
+}
+
+PVR_ERROR AddTimer(const PVR_TIMER &timer)
+{
+ if (dvblinkclient)
+ return dvblinkclient->AddTimer(timer);
+
+ return PVR_ERROR_FAILED;
+}
+
+PVR_ERROR DeleteTimer(const PVR_TIMER &timer, bool bForceDelete)
+{
+ if (dvblinkclient)
+ return dvblinkclient->DeleteTimer(timer);
+
+ return PVR_ERROR_FAILED;
+}
+
+PVR_ERROR UpdateTimer(const PVR_TIMER &timer)
+{
+ if (dvblinkclient)
+ return dvblinkclient->UpdateTimer(timer);
+
+ return PVR_ERROR_FAILED;
+}
+
+
+int GetRecordingsAmount(void)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetRecordingsAmount();
+
+ return -1;
+}
+
+PVR_ERROR GetRecordings(ADDON_HANDLE handle)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetRecordings(handle);
+
+ return PVR_ERROR_FAILED;
+}
+
+PVR_ERROR DeleteRecording(const PVR_RECORDING &recording)
+{
+ if (dvblinkclient)
+ return dvblinkclient->DeleteRecording(recording);
+
+ return PVR_ERROR_FAILED;
+}
+
+PVR_ERROR GetRecordingEdl(const PVR_RECORDING&, PVR_EDL_ENTRY[], int*)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetCurrentClientChannel(void)
+{
+ if (dvblinkclient)
+ return dvblinkclient->GetCurrentChannelId();
+
+ return 0;
+}
+
+bool SwitchChannel(const PVR_CHANNEL &channel)
+{
+ CloseLiveStream();
+ return OpenLiveStream(channel);
+}
+
+PVR_ERROR SignalStatus(PVR_SIGNAL_STATUS &signalStatus)
+{
+ return PVR_ERROR_NO_ERROR;
+}
+
+/** UNUSED API FUNCTIONS */
+
+PVR_ERROR GetStreamProperties(PVR_STREAM_PROPERTIES* pProperties)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+
+PVR_ERROR DialogChannelScan(void)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+PVR_ERROR CallMenuHook(const PVR_MENUHOOK &menuhook, const PVR_MENUHOOK_DATA &item)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+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 DialogChannelSettings(const PVR_CHANNEL &channel)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+PVR_ERROR DialogAddChannel(const PVR_CHANNEL &channel)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+int GetChannelGroupsAmount(void)
+{
+ return -1;
+}
+
+PVR_ERROR GetChannelGroups(ADDON_HANDLE handle, bool bRadio)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+PVR_ERROR GetChannelGroupMembers(ADDON_HANDLE handle, const PVR_CHANNEL_GROUP &group)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+
+bool OpenRecordedStream(const PVR_RECORDING &recording)
+{
+ return false;
+}
+void CloseRecordedStream(void)
+{
+}
+
+int ReadRecordedStream(unsigned char *pBuffer, unsigned int iBufferSize)
+{
+ return 0;
+}
+long long SeekRecordedStream(long long iPosition, int iWhence /* = SEEK_SET */)
+{
+ return 0;
+}
+
+long long PositionRecordedStream(void)
+{
+ return -1;
+}
+
+long long LengthRecordedStream(void)
+{
+ return 0;
+}
+
+void DemuxReset(void)
+{
+}
+
+void DemuxFlush(void)
+{
+}
+
+
+PVR_ERROR RenameRecording(const PVR_RECORDING &recording)
+{
+ return PVR_ERROR_NOT_IMPLEMENTED;
+}
+
+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;
+}
+
+void DemuxAbort(void)
+{
+}
+
+DemuxPacket* DemuxRead(void)
+{
+ return NULL;
+}
+
+unsigned int GetChannelSwitchDelay(void)
+{
+ return 0;
+}
+
+
+
+bool SeekTime(int,bool,double*)
+{
+ return false;
+}
+
+void SetSpeed(int)
+{
+}
+
+time_t GetPlayingTime() { return 0; }
+time_t GetBufferTimeStart() { return 0; }
+time_t GetBufferTimeEnd() { return 0; }
+
+}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/client.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/client.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/client.h 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/client.h 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2005-2012 Team XBMC
+ * http://xbmc.org
+
+ * Copyright (C) 2012 Palle Ehmsen(Barcode Madness)
+ * http://www.barcodemadness.com
+ *
+ * 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
+ *
+ */
+
+#pragma once
+#include "libXBMC_addon.h"
+#include "libXBMC_pvr.h"
+#include "libXBMC_gui.h"
+
+extern bool m_bCreated;
+
+enum DVBLINK_STREAMTYPE {HTTP=0,RTP=1,HLS =2, ASF=3};
+
+/* Client Settings default values */
+#define DEFAULT_HOST "127.0.0.1"
+#define DEFAULT_PORT 8080
+#define DEFAULT_TIMEOUT 10
+#define DEFAULT_STREAMTYPE HTTP
+#define DEFAULT_CLIENTNAME "xbmc"
+#define DEFAULT_USERNAME ""
+#define DEFAULT_PASSWORD ""
+#define DEFAULT_USECHLHANDLE true
+#define DEFAULT_SHOWINFOMSG false
+#define DEFAULT_HEIGHT 720
+#define DEFAULT_WIDTH 576
+#define DEFAULT_BITRATE 512
+#define DEFAULT_AUDIOTRACK "eng"
+#define DEFAULT_TIMESHIFTBUFFERPATH "special://userdata/addon_data/pvr.dvblink/"
+#define DEFAULT_USETIMESHIFT false
+
+/* Client Settings */
+extern std::string g_szClientname;
+extern std::string g_szHostname;
+extern long g_lPort;
+extern int g_iConnectTimeout;
+extern DVBLINK_STREAMTYPE g_szStreamType;
+extern std::string g_szUsername;
+extern std::string g_szPassword;
+extern int g_iHeight;
+extern int g_iWidth;
+extern int g_iBitrate;
+extern std::string g_szAudiotrack;
+extern bool g_bUseChlHandle;
+extern bool g_bShowInfoMSG;
+extern bool g_bUseTimeshift;
+extern std::string g_szTimeShiftBufferPath;
+
+
+
+extern ADDON::CHelper_libXBMC_addon *XBMC;
+extern CHelper_libXBMC_pvr *PVR;
+
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/DVBLinkClient.cpp xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/DVBLinkClient.cpp
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/DVBLinkClient.cpp 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/DVBLinkClient.cpp 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,749 @@
+/*
+ * Copyright (C) 2005-2012 Team XBMC
+ * http://xbmc.org
+
+ * Copyright (C) 2012 Palle Ehmsen(Barcode Madness)
+ * http://www.barcodemadness.com
+ *
+ * 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 "DVBLinkClient.h"
+#include "platform/util/StdString.h"
+
+using namespace dvblinkremote;
+using namespace dvblinkremotehttp;
+using namespace ADDON;
+
+std::string DVBLinkClient::GetBuildInRecorderObjectID()
+{
+ std::string result = "";
+ DVBLinkRemoteStatusCode status;
+ GetPlaybackObjectRequest getPlaybackObjectRequest(m_hostname.c_str(), "");
+ getPlaybackObjectRequest.RequestedObjectType = GetPlaybackObjectRequest::REQUESTED_OBJECT_TYPE_ALL;
+ getPlaybackObjectRequest.RequestedItemType = GetPlaybackObjectRequest::REQUESTED_ITEM_TYPE_ALL;
+ getPlaybackObjectRequest.IncludeChildrenObjectsForRequestedObject = true;
+ GetPlaybackObjectResponse getPlaybackObjectResponse;
+ if ((status = m_dvblinkRemoteCommunication->GetPlaybackObject(getPlaybackObjectRequest, getPlaybackObjectResponse)) == DVBLINK_REMOTE_STATUS_OK)
+ {
+ for (std::vector::iterator it = getPlaybackObjectResponse.GetPlaybackContainers().begin(); it < getPlaybackObjectResponse.GetPlaybackContainers().end(); it++)
+ {
+ PlaybackContainer * container = (PlaybackContainer *) *it;
+ if (strcmp(container->SourceID.c_str(), DVBLINK_BUILD_IN_RECORDER_SOURCE_ID) == 0)
+ {
+ result = container->GetObjectID();
+ break;
+ }
+
+ }
+ }
+ return result;
+}
+
+
+
+DVBLinkClient::DVBLinkClient(CHelper_libXBMC_addon *XBMC, CHelper_libXBMC_pvr *PVR,std::string clientname, std::string hostname, long port,bool showinfomsg, std::string username, std::string password, bool usetimeshift, std::string timeshiftpath)
+{
+ this->PVR = PVR;
+ this->XBMC = XBMC;
+ m_clientname = clientname;
+ m_hostname = hostname;
+ m_connected = false;
+ m_currentChannelId = 0;
+ m_showinfomsg = showinfomsg;
+
+ m_usetimeshift = usetimeshift && XBMC->DirectoryExists(timeshiftpath.c_str());
+
+ m_timeshiftpath.append(timeshiftpath);
+ m_timeshiftpath.append(clientname);
+
+ m_httpClient = new HttpPostClient(XBMC,hostname,port, username, password);
+ m_dvblinkRemoteCommunication = DVBLinkRemote::Connect((HttpClient&)*m_httpClient, m_hostname.c_str(), 8080, username.c_str(), password.c_str());
+
+ DVBLinkRemoteStatusCode status;
+ m_timerCount = -1;
+ m_recordingCount = -1;
+
+ GetChannelsRequest request;
+ m_channels = new ChannelList();
+ m_stream = new Stream();
+ m_tsBuffer = NULL;
+
+ if ((status = m_dvblinkRemoteCommunication->GetChannels(request, *m_channels)) == DVBLINK_REMOTE_STATUS_OK)
+ {
+ int iChannelUnique = 0;
+ for (std::vector::iterator it = m_channels->begin(); it < m_channels->end(); it++)
+ {
+ Channel* channel = (*it);
+ m_channelMap[++iChannelUnique] = channel;
+ }
+ m_connected = true;
+
+ XBMC->Log(LOG_INFO, "Connected to DVBLink Server '%s'", m_hostname.c_str());
+ if (m_showinfomsg)
+ {
+ XBMC->QueueNotification(QUEUE_INFO, XBMC->GetLocalizedString(32001), m_hostname.c_str());
+ XBMC->QueueNotification(QUEUE_INFO, XBMC->GetLocalizedString(32002), m_channelMap.size());
+ }
+
+ m_recordingsid = GetBuildInRecorderObjectID();
+ m_recordingsid.append(DVBLINK_RECODINGS_BY_DATA_ID);
+
+ m_updating = true;
+ CreateThread();
+ }
+ else
+ {
+ XBMC->QueueNotification(QUEUE_ERROR, XBMC->GetLocalizedString(32003), m_hostname.c_str(), (int)status);
+ std::string error;
+ m_dvblinkRemoteCommunication->GetLastError(error);
+ XBMC->Log(LOG_ERROR, "Could not connect to DVBLink Server '%s' on port '%i' with username '%s' (Error code : %d Description : %s)", hostname.c_str(), port, username.c_str(), (int)status,error.c_str());
+ }
+}
+
+void *DVBLinkClient::Process()
+{
+ XBMC->Log(LOG_DEBUG, "DVBLinkUpdateProcess:: thread started");
+ unsigned int counter = 0;
+ while (m_updating)
+ {
+ if (counter >= 300000)
+ {
+ counter = 0;
+ PVR->TriggerTimerUpdate();
+ Sleep(5000);
+ PVR->TriggerRecordingUpdate();
+ }
+ counter += 1000;
+ Sleep(1000);
+ }
+ XBMC->Log(LOG_DEBUG, "DVBLinkUpdateProcess:: thread stopped");
+ return NULL;
+}
+
+
+bool DVBLinkClient::GetStatus()
+{
+ return m_connected;
+}
+
+int DVBLinkClient::GetChannelsAmount()
+{
+ return m_channelMap.size();
+}
+
+PVR_ERROR DVBLinkClient::GetChannels(ADDON_HANDLE handle, bool bRadio)
+{
+ XBMC->Log(LOG_INFO, "Getting channels (%d channels on server)", m_channelMap.size());
+ for (std::map::iterator it=m_channelMap.begin(); it!=m_channelMap.end(); ++it)
+ {
+ Channel* channel = (*it).second;
+
+ bool isRadio = (channel->GetChannelType() == Channel::CHANNEL_TYPE_RADIO);
+
+ if (isRadio == bRadio)
+ {
+ PVR_CHANNEL xbmcChannel;
+ memset(&xbmcChannel, 0, sizeof(PVR_CHANNEL));
+ xbmcChannel.bIsRadio = isRadio;
+ xbmcChannel.iChannelNumber =channel->Number;
+ xbmcChannel.iEncryptionSystem = 0;
+ xbmcChannel.iUniqueId = (*it).first;
+
+ PVR_STRCPY(xbmcChannel.strChannelName,channel->GetName().c_str());
+ CStdString stream;
+ if (!m_usetimeshift)
+ {
+ if (isRadio)
+ stream.Format("pvr://stream/radio/%i.ts", channel->GetDvbLinkID());
+ else
+ stream.Format("pvr://stream/tv/%i.ts", channel->GetDvbLinkID());
+
+ PVR_STRCPY(xbmcChannel.strStreamURL, stream.c_str());
+ PVR_STRCPY(xbmcChannel.strInputFormat, "video/x-mpegts");
+ }
+
+ //PVR_STRCPY(xbmcChannel.strIconPath, "special://userdata/addon_data/pvr.dvblink/channel.png");
+ PVR->TransferChannelEntry(handle, &xbmcChannel);
+ }
+ }
+ return PVR_ERROR_NO_ERROR;
+}
+
+int DVBLinkClient::GetTimersAmount()
+{
+ return m_timerCount;
+}
+
+
+int DVBLinkClient::GetInternalUniqueIdFromChannelId(const std::string& channelId)
+{
+ for (std::map::iterator it=m_channelMap.begin(); it!=m_channelMap.end(); ++it)
+ {
+ Channel * channel = (*it).second;
+ int id = (*it).first;
+ if (channelId.compare(channel->GetID()) == 0)
+ {
+ return id;
+ }
+ }
+ return 0;
+}
+
+PVR_ERROR DVBLinkClient::GetTimers(ADDON_HANDLE handle)
+{
+ PVR_ERROR result = PVR_ERROR_FAILED;
+ PLATFORM::CLockObject critsec(m_mutex);
+
+ GetSchedulesRequest getSchedulesRequest;
+ StoredSchedules sschedules;
+
+ DVBLinkRemoteStatusCode status;
+ int count = 0;
+ if ((status = m_dvblinkRemoteCommunication->GetSchedules(getSchedulesRequest, sschedules)) != DVBLINK_REMOTE_STATUS_OK)
+ {
+ std::string error;
+ m_dvblinkRemoteCommunication->GetLastError(error);
+ XBMC->Log(LOG_ERROR, "Could not get timers (Error code : %d Description : %s)", (int)status,error.c_str());
+ // XBMC->QueueNotification(QUEUE_ERROR, XBMC->GetLocalizedString(32006), (int)status);
+ return result;
+ }
+
+ XBMC->Log(LOG_INFO, "Found %d epg timers", sschedules.GetEpgSchedules().size());
+
+ if (m_showinfomsg)
+ {
+ XBMC->QueueNotification(QUEUE_INFO, XBMC->GetLocalizedString(32007), sschedules.GetEpgSchedules().size());
+ }
+
+ for (std::vector::iterator it = sschedules.GetEpgSchedules().begin(); it < sschedules.GetEpgSchedules().end(); it++)
+ {
+ StoredEpgSchedule* schedule = (StoredEpgSchedule*)*it;
+ PVR_TIMER xbmcTimer;
+ memset(&xbmcTimer, 0, sizeof(PVR_TIMER));
+ PVR_STR2INT(xbmcTimer.iClientIndex, schedule->GetID().c_str());
+
+ xbmcTimer.iClientChannelUid = GetInternalUniqueIdFromChannelId(schedule->GetChannelID());
+ xbmcTimer.state = PVR_TIMER_STATE_SCHEDULED;
+ xbmcTimer.bIsRepeating = schedule->Repeat;
+ PVR_STR2INT(xbmcTimer.iEpgUid, schedule->GetProgramID().c_str());
+ EpgSearchResult epgSearchResult;
+ if (DoEPGSearch(epgSearchResult,schedule->GetChannelID(), -1, -1, schedule->GetProgramID()))
+ {
+ if (epgSearchResult.size() < 1 || epgSearchResult[0]->GetEpgData().size() < 1)
+ {
+ XBMC->Log(LOG_INFO, "No EPG program data for timer '%s' on channel '%s' with program id '%s'", schedule->GetID().c_str(),schedule->GetChannelID().c_str(),schedule->GetProgramID().c_str());
+ continue;
+ }
+ ChannelEpgData * channelepgdata = epgSearchResult[0];
+ Program * program = channelepgdata->GetEpgData()[0];
+
+ xbmcTimer.startTime =program->GetStartTime();
+ xbmcTimer.endTime = program->GetStartTime() + program->GetDuration();
+ PVR_STRCPY(xbmcTimer.strTitle, program->GetTitle().c_str());
+ PVR_STRCPY(xbmcTimer.strSummary, program->ShortDescription.c_str());
+ PVR->TransferTimerEntry(handle, &xbmcTimer);
+ XBMC->Log(LOG_INFO, "Added EPG timer : %s", program->GetTitle().c_str());
+
+ count++;
+ }
+
+ }
+
+ XBMC->Log(LOG_INFO, "Found %d manual timers", sschedules.GetManualSchedules().size());
+
+ if (m_showinfomsg)
+ {
+ XBMC->QueueNotification(QUEUE_INFO, XBMC->GetLocalizedString(32008), sschedules.GetManualSchedules().size());
+ }
+
+ for (std::vector::iterator it = sschedules.GetManualSchedules().begin(); it < sschedules.GetManualSchedules().end(); it++)
+ {
+ StoredManualSchedule* schedule = (StoredManualSchedule*)*it;
+ PVR_TIMER xbmcTimer;
+ memset(&xbmcTimer, 0, sizeof(PVR_TIMER));
+ PVR_STR2INT(xbmcTimer.iClientIndex, schedule->GetID().c_str());
+
+ xbmcTimer.iClientChannelUid = GetInternalUniqueIdFromChannelId(schedule->GetChannelID());
+
+
+ xbmcTimer.state = PVR_TIMER_STATE_SCHEDULED;
+ xbmcTimer.startTime = schedule->GetStartTime();
+ xbmcTimer.endTime = schedule->GetStartTime() + schedule->GetDuration();
+ PVR_STRCPY(xbmcTimer.strTitle, schedule->Title.c_str());
+ //TODO: PAE: Add weekdays
+ XBMC->Log(LOG_INFO, "Added manual timer : %s", schedule->Title.c_str());
+ PVR->TransferTimerEntry(handle, &xbmcTimer);
+ count++;
+ }
+ m_timerCount = count;
+ result = PVR_ERROR_NO_ERROR;
+ return result;
+}
+
+PVR_ERROR DVBLinkClient::AddTimer(const PVR_TIMER &timer)
+{
+ PVR_ERROR result = PVR_ERROR_FAILED;
+ PLATFORM::CLockObject critsec(m_mutex);
+ DVBLinkRemoteStatusCode status;
+ AddScheduleRequest * addScheduleRequest = NULL;
+ std::string channelId = m_channelMap[timer.iClientChannelUid]->GetID();
+ if (timer.iEpgUid != 0)
+ {
+ char programId [33];
+ PVR_INT2STR(programId,timer.iEpgUid);
+ addScheduleRequest = new AddScheduleByEpgRequest(channelId, programId, timer.bIsRepeating);
+ }
+ else
+ {
+ //TODO: Fix day mask
+ addScheduleRequest = new AddManualScheduleRequest(channelId, timer.startTime, timer.endTime - timer.startTime, -1, timer.strTitle);
+ }
+
+ if ((status = m_dvblinkRemoteCommunication->AddSchedule(*addScheduleRequest)) == DVBLINK_REMOTE_STATUS_OK)
+ {
+ XBMC->Log(LOG_INFO, "Timer added");
+ PVR->TriggerTimerUpdate();
+ result = PVR_ERROR_NO_ERROR;
+ }
+ else
+ {
+ result = PVR_ERROR_FAILED;
+ std::string error;
+ m_dvblinkRemoteCommunication->GetLastError(error);
+ XBMC->Log(LOG_ERROR, "Could not add timer (Error code : %d Description : %s)", (int)status, error.c_str());
+ }
+ SAFE_DELETE(addScheduleRequest);
+ return result;
+}
+
+PVR_ERROR DVBLinkClient::DeleteTimer(const PVR_TIMER &timer)
+{
+ PVR_ERROR result = PVR_ERROR_FAILED;
+ PLATFORM::CLockObject critsec(m_mutex);
+ DVBLinkRemoteStatusCode status;
+ char scheduleId [33];
+ PVR_INT2STR(scheduleId, timer.iClientIndex);
+
+ RemoveScheduleRequest removeSchedule(scheduleId);
+
+
+ if ((status = m_dvblinkRemoteCommunication->RemoveSchedule(removeSchedule)) == DVBLINK_REMOTE_STATUS_OK)
+ {
+ XBMC->Log(LOG_INFO, "Timer deleted");
+ PVR->TriggerTimerUpdate();
+ result = PVR_ERROR_NO_ERROR;
+ }
+ else
+ {
+ std::string error;
+ m_dvblinkRemoteCommunication->GetLastError(error);
+ XBMC->Log(LOG_ERROR, "Timer could not be deleted (Error code : %d Description : %s)", (int)status, error.c_str());
+ }
+ return result;
+}
+
+PVR_ERROR DVBLinkClient::UpdateTimer(const PVR_TIMER &timer)
+{
+ PVR_ERROR deleteResult = DeleteTimer(timer);
+ if (deleteResult == PVR_ERROR_NO_ERROR)
+ {
+ return AddTimer(timer);
+ }
+ return deleteResult;
+}
+
+int DVBLinkClient::GetRecordingsAmount()
+{
+
+ return m_recordingCount;
+}
+
+
+
+std::string DVBLinkClient::GetRecordedTVByDateObjectID(const std::string& buildInRecoderObjectID)
+{
+ std::string result = "";
+ DVBLinkRemoteStatusCode status;
+
+ GetPlaybackObjectRequest getPlaybackObjectRequest(m_hostname.c_str(), buildInRecoderObjectID);
+ getPlaybackObjectRequest.IncludeChildrenObjectsForRequestedObject = true;
+ GetPlaybackObjectResponse getPlaybackObjectResponse;
+
+
+ if ((status = m_dvblinkRemoteCommunication->GetPlaybackObject(getPlaybackObjectRequest, getPlaybackObjectResponse)) == DVBLINK_REMOTE_STATUS_OK)
+ {
+ for (std::vector::iterator it = getPlaybackObjectResponse.GetPlaybackContainers().begin(); it < getPlaybackObjectResponse.GetPlaybackContainers().end(); it++)
+ {
+ PlaybackContainer * container = (PlaybackContainer *) *it;
+
+
+ // if (strcmp(container->GetName().c_str(), "By Date") == 0)
+ if (container->GetObjectID().find("F6F08949-2A07-4074-9E9D-423D877270BB") != std::string::npos)
+ {
+ result = container->GetObjectID();
+ break;
+ }
+ }
+ }
+ return result;
+
+}
+
+PVR_ERROR DVBLinkClient::DeleteRecording(const PVR_RECORDING& recording)
+{
+ PLATFORM::CLockObject critsec(m_mutex);
+ PVR_ERROR result = PVR_ERROR_FAILED;
+ DVBLinkRemoteStatusCode status;
+ RemovePlaybackObjectRequest remoteObj(recording.strRecordingId);
+
+ if ((status = m_dvblinkRemoteCommunication->RemovePlaybackObject(remoteObj)) != DVBLINK_REMOTE_STATUS_OK)
+{
+ std::string error;
+ m_dvblinkRemoteCommunication->GetLastError(error);
+ XBMC->Log(LOG_ERROR, "Recording %s could not be deleted (Error code: %d Description : %s)", recording.strTitle, (int)status, error.c_str());
+ return result;
+ }
+
+ XBMC->Log(LOG_INFO, "Recording %s deleted", recording.strTitle);
+ PVR->TriggerRecordingUpdate();
+ result = PVR_ERROR_NO_ERROR;
+ return result;
+}
+
+
+PVR_ERROR DVBLinkClient::GetRecordings(ADDON_HANDLE handle)
+{
+ PLATFORM::CLockObject critsec(m_mutex);
+ PVR_ERROR result = PVR_ERROR_FAILED;
+ DVBLinkRemoteStatusCode status;
+
+ GetPlaybackObjectRequest getPlaybackObjectRequest(m_hostname.c_str(), m_recordingsid);
+ getPlaybackObjectRequest.IncludeChildrenObjectsForRequestedObject = true;
+ GetPlaybackObjectResponse getPlaybackObjectResponse;
+
+ if ((status = m_dvblinkRemoteCommunication->GetPlaybackObject(getPlaybackObjectRequest, getPlaybackObjectResponse)) != DVBLINK_REMOTE_STATUS_OK)
+ {
+ std::string error;
+ m_dvblinkRemoteCommunication->GetLastError(error);
+ XBMC->Log(LOG_ERROR,"Could not get recordings (Error code : %d Description : %s)", (int)status, error.c_str());
+ //XBMC->QueueNotification(QUEUE_ERROR, XBMC->GetLocalizedString(32004), (int)status);
+ return result;
+ }
+
+ XBMC->Log(LOG_INFO, "Found %d recordings", getPlaybackObjectResponse.GetPlaybackItems().size());
+
+ if (m_showinfomsg)
+ {
+ XBMC->QueueNotification(QUEUE_INFO, XBMC->GetLocalizedString(32009), getPlaybackObjectResponse.GetPlaybackItems().size());
+ }
+
+ for (std::vector::iterator it = getPlaybackObjectResponse.GetPlaybackItems().begin(); it < getPlaybackObjectResponse.GetPlaybackItems().end(); it++)
+ {
+ RecordedTvItem * tvitem = (RecordedTvItem *) *it;
+ PVR_RECORDING xbmcRecording;
+ memset(&xbmcRecording, 0, sizeof(PVR_RECORDING));
+
+ PVR_STRCPY(xbmcRecording.strRecordingId,tvitem->GetObjectID().c_str());
+
+ PVR_STRCPY(xbmcRecording.strTitle,tvitem->GetMetadata().GetTitle().c_str());
+
+ xbmcRecording.recordingTime = tvitem->GetMetadata().GetStartTime();
+ PVR_STRCPY(xbmcRecording.strPlot, tvitem->GetMetadata().ShortDescription.c_str());
+ PVR_STRCPY(xbmcRecording.strStreamURL, tvitem->GetPlaybackUrl().c_str());
+ xbmcRecording.iDuration = tvitem->GetMetadata().GetDuration();
+ PVR_STRCPY(xbmcRecording.strChannelName, tvitem->ChannelName.c_str());
+ PVR_STRCPY(xbmcRecording.strThumbnailPath, tvitem->GetThumbnailUrl().c_str());
+ PVR->TransferRecordingEntry(handle, &xbmcRecording);
+
+ }
+ m_recordingCount = getPlaybackObjectResponse.GetPlaybackItems().size();
+ result = PVR_ERROR_NO_ERROR;
+ return result;
+}
+
+void DVBLinkClient::GetDriveSpace(long long *iTotal, long long *iUsed)
+{
+ PLATFORM::CLockObject critsec(m_mutex);
+ GetRecordingSettingsRequest recordingsettingsrequest;
+ *iTotal = 0;
+ *iUsed = 0;
+ RecordingSettings settings;
+ DVBLinkRemoteStatusCode status;
+ if ((status = m_dvblinkRemoteCommunication->GetRecordingSettings(recordingsettingsrequest, settings)) == DVBLINK_REMOTE_STATUS_OK)
+ {
+ *iTotal = settings.TotalSpace;
+ *iUsed = settings.AvailableSpace;
+ }
+}
+
+
+int DVBLinkClient::GetCurrentChannelId()
+{
+ return m_currentChannelId;
+}
+
+const char * DVBLinkClient::GetLiveStreamURL(const PVR_CHANNEL &channel, DVBLINK_STREAMTYPE streamtype, int width, int height, int bitrate, std::string audiotrack)
+{
+ PLATFORM::CLockObject critsec(m_mutex);
+ StreamRequest* streamRequest = NULL;
+ TranscodingOptions options(width, height);
+ options.SetBitrate(bitrate);
+ options.SetAudioTrack(audiotrack);
+ Channel * c = m_channelMap[channel.iUniqueId];
+ DVBLinkRemoteStatusCode status;
+ switch (streamtype)
+ {
+ case HTTP:
+ streamRequest = new RawHttpStreamRequest(m_hostname.c_str(), c->GetDvbLinkID(), m_clientname.c_str());
+ break;
+ case RTP:
+ streamRequest = new RealTimeTransportProtocolStreamRequest(m_hostname.c_str(), c->GetDvbLinkID(), m_clientname.c_str(), options);
+ break;
+ case HLS:
+ streamRequest = new HttpLiveStreamRequest(m_hostname.c_str(), c->GetDvbLinkID(), m_clientname.c_str(), options);
+ break;
+ case ASF:
+ streamRequest = new WindowsMediaStreamRequest(m_hostname.c_str(), c->GetDvbLinkID(), m_clientname.c_str(), options);
+ break;
+ }
+
+ if ((status = m_dvblinkRemoteCommunication->PlayChannel(*streamRequest, *m_stream)) != DVBLINK_REMOTE_STATUS_OK)
+ {
+ std::string error;
+ m_dvblinkRemoteCommunication->GetLastError(error);
+ XBMC->Log(LOG_ERROR, "Could not get stream for channel %i (Error code : %d)", channel.iUniqueId, (int)status,error.c_str());
+ XBMC->QueueNotification(QUEUE_ERROR, XBMC->GetLocalizedString(32010), channel.strChannelName, (int)status);
+ SAFE_DELETE(streamRequest);
+ return "";
+ }
+
+ m_currentChannelId = channel.iUniqueId;
+ SAFE_DELETE(streamRequest);
+ return m_stream->GetUrl().c_str();
+}
+
+bool DVBLinkClient::OpenLiveStream(const PVR_CHANNEL &channel, DVBLINK_STREAMTYPE streamtype, int width, int height, int bitrate, std::string audiotrack)
+{
+ if (m_usetimeshift && streamtype == HTTP)
+ {
+ if (m_tsBuffer)
+ {
+ SAFE_DELETE(m_tsBuffer);
+ }
+ m_tsBuffer = new TimeShiftBuffer(XBMC, GetLiveStreamURL(channel, streamtype, width, height, bitrate, audiotrack), m_timeshiftpath);
+ return m_tsBuffer->IsValid();
+ }
+ return false;
+}
+
+int DVBLinkClient::ReadLiveStream(unsigned char *pBuffer, unsigned int iBufferSize)
+{
+ if(m_tsBuffer)
+ return m_tsBuffer->ReadData(pBuffer,iBufferSize);
+ return 0;
+}
+
+long long DVBLinkClient::SeekLiveStream(long long iPosition, int iWhence)
+{
+ if(m_tsBuffer)
+ return m_tsBuffer->Seek(iPosition, iWhence);
+ return 0;
+}
+
+long long DVBLinkClient::PositionLiveStream(void)
+{
+ if(m_tsBuffer)
+ return m_tsBuffer->Position();
+ return 0;
+}
+long long DVBLinkClient::LengthLiveStream(void)
+{
+ if(m_tsBuffer)
+ return m_tsBuffer->Length();
+ return 0;
+}
+
+void DVBLinkClient::StopStreaming(bool bUseChlHandle)
+{
+ PLATFORM::CLockObject critsec(m_mutex);
+ StopStreamRequest * request;
+
+
+ if (m_usetimeshift && m_tsBuffer)
+ {
+ SAFE_DELETE(m_tsBuffer);
+ }
+
+ if (bUseChlHandle)
+ {
+ request = new StopStreamRequest(m_stream->GetChannelHandle());
+ }
+ else
+ {
+ request = new StopStreamRequest(m_clientname);
+ }
+
+ DVBLinkRemoteStatusCode status;
+ if ((status = m_dvblinkRemoteCommunication->StopChannel(*request)) != DVBLINK_REMOTE_STATUS_OK)
+ {
+ std::string error;
+ m_dvblinkRemoteCommunication->GetLastError(error);
+ XBMC->Log(LOG_ERROR, "Could not stop stream (Error code : %d Description : %s)", (int)status, error.c_str());
+ }
+
+
+ SAFE_DELETE(request);
+}
+
+void DVBLinkClient::SetEPGGenre(Program *program, EPG_TAG *tag)
+{
+ if (program->IsCatNews)
+ {
+ tag->iGenreType = 0x20;
+ tag->iGenreSubType = 0x00;
+ }
+
+ if (program->IsCatDocumentary)
+ {
+ tag->iGenreType = 0x20;
+ tag->iGenreSubType = 0x03;
+ }
+
+
+ if (program->IsCatEducational)
+ {
+ tag->iGenreType = 0x90;
+ }
+
+ if (program->IsCatSports)
+ {
+ tag->iGenreType = 0x40;
+ }
+
+
+
+
+ if (program->IsCatMovie)
+ {
+ tag->iGenreType = 0x10;
+ tag->iGenreSubType =program->IsCatThriller ? 0x01 : program->IsCatScifi ? 0x03 :program->IsCatHorror ? 0x03 : program->IsCatComedy ? 0x04 : program->IsCatSoap ? 0x05 : program->IsCatRomance ? 0x06 :program->IsCatDrama ? 0x08 : 0;
+ }
+
+ if (program->IsCatKids)
+ {
+ tag->iGenreType = 0x50;
+ }
+
+ if (program->IsCatMusic)
+ {
+ tag->iGenreType = 0x60;
+ }
+
+ if (program->IsCatSpecial)
+ {
+ tag->iGenreType = 0xB0;
+ }
+}
+
+bool DVBLinkClient::DoEPGSearch(EpgSearchResult& epgSearchResult, const std::string& channelId, const long startTime, const long endTime, const std::string& programId)
+{
+ PLATFORM::CLockObject critsec(m_mutex);
+ EpgSearchRequest epgSearchRequest(channelId, startTime, endTime);
+ if (programId.compare("") != 0)
+ {
+ epgSearchRequest.ProgramID = programId;
+ }
+
+ DVBLinkRemoteStatusCode status;
+
+ if ((status = m_dvblinkRemoteCommunication->SearchEpg(epgSearchRequest, epgSearchResult)) == DVBLINK_REMOTE_STATUS_OK)
+ {
+ return true;
+ }
+ return false;
+}
+
+PVR_ERROR DVBLinkClient::GetEPGForChannel(ADDON_HANDLE handle, const PVR_CHANNEL& channel, time_t iStart, time_t iEnd)
+{
+ PVR_ERROR result = PVR_ERROR_FAILED;
+ PLATFORM::CLockObject critsec(m_mutex);
+ Channel * c = m_channelMap[channel.iUniqueId];
+ EpgSearchResult epgSearchResult;
+
+ if (DoEPGSearch(epgSearchResult,c->GetID(), iStart, iEnd))
+ {
+ for (std::vector::iterator it = epgSearchResult.begin(); it < epgSearchResult.end(); it++)
+ {
+ ChannelEpgData* channelEpgData = (ChannelEpgData*)*it;
+ EpgData& epgData = channelEpgData->GetEpgData();
+ for (std::vector::iterator pIt = epgData.begin(); pIt < epgData.end(); pIt++)
+ {
+ Program* p = (Program*)*pIt;
+ EPG_TAG broadcast;
+ memset(&broadcast, 0, sizeof(EPG_TAG));
+
+ PVR_STR2INT(broadcast.iUniqueBroadcastId, p->GetID().c_str() );
+ broadcast.strTitle = p->GetTitle().c_str();
+ broadcast.iChannelNumber = channel.iChannelNumber;
+ broadcast.startTime = p->GetStartTime();
+ broadcast.endTime = p->GetStartTime() + p->GetDuration();
+ broadcast.strPlotOutline = p->SubTitle.c_str();
+ broadcast.strPlot = p->ShortDescription.c_str();
+
+ broadcast.strIconPath = p->Image.c_str();
+ broadcast.iGenreType = 0;
+ broadcast.iGenreSubType = 0;
+ broadcast.strGenreDescription = "";
+ broadcast.firstAired = 0;
+ broadcast.iParentalRating = 0;
+ broadcast.iStarRating = p->Rating;
+ broadcast.bNotify = false;
+ broadcast.iSeriesNumber = 0;
+ broadcast.iEpisodeNumber = p->EpisodeNumber;
+ broadcast.iEpisodePartNumber = 0;
+ broadcast.strEpisodeName = "";
+ SetEPGGenre(p, &broadcast);
+ PVR->TransferEpgEntry(handle, &broadcast);
+ }
+ }
+ result = PVR_ERROR_NO_ERROR;
+ }
+ else
+ {
+ XBMC->Log(LOG_NOTICE, "Not EPG data found for channel : %s with id : %i", channel.strChannelName, channel.iUniqueId);
+ }
+ return result;
+}
+
+DVBLinkClient::~DVBLinkClient(void)
+{
+ m_updating = false;
+ if (IsRunning())
+ {
+ StopThread();
+ }
+
+ SAFE_DELETE(m_dvblinkRemoteCommunication);
+ SAFE_DELETE(m_httpClient);
+ SAFE_DELETE(m_channels);
+ SAFE_DELETE(m_stream);
+ if (m_tsBuffer)
+ {
+ SAFE_DELETE(m_tsBuffer);
+ }
+}
diff -Nru xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/DVBLinkClient.h xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/DVBLinkClient.h
--- xbmc-pvr-addons-1.0.0~git20131213.1417-e1c3fb1/addons/pvr.dvblink/src/DVBLinkClient.h 1970-01-01 00:00:00.000000000 +0000
+++ xbmc-pvr-addons-1.0.0~git20140504.0903-2955e1d/addons/pvr.dvblink/src/DVBLinkClient.h 2014-01-04 10:28:12.000000000 +0000
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2005-2012 Team XBMC
+ * http://xbmc.org
+
+ * Copyright (C) 2012 Palle Ehmsen(Barcode Madness)
+ * http://www.barcodemadness.com
+ *
+ * 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
+ *
+ */
+
+#pragma once
+
+#include "platform/os.h"
+#include "libdvblinkremote/dvblinkremote.h"
+#include "HttpPostClient.h"
+#include "TimeShiftBuffer.h"
+#include "xbmc_pvr_types.h"
+#include "libXBMC_addon.h"
+#include "libXBMC_pvr.h"
+#include "client.h"
+#include "platform/threads/threads.h"
+#include "platform/threads/mutex.h"
+#include "platform/util/util.h"
+#include