Codebase list kodi-pvr-wmc / 8dd7313
Imported Upstream version 1.4.4+git20160820 Balint Reczey 7 years ago
25 changed file(s) with 802 addition(s) and 102 deletion(s). Raw diff Collapse all Expand all
3535 #
3636 before_script:
3737 - cd $TRAVIS_BUILD_DIR/..
38 - git clone -b Jarvis --depth=1 https://github.com/xbmc/xbmc.git
38 - git clone --depth=1 https://github.com/xbmc/xbmc.git
3939 - cd pvr.wmc && mkdir build && cd build
40 - cmake -DADDONS_TO_BUILD=pvr.wmc -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/project/cmake/addons
40 - cmake -DADDONS_TO_BUILD=pvr.wmc -DADDON_SRC_PREFIX=$TRAVIS_BUILD_DIR/.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/../xbmc/addons -DPACKAGE_ZIP=1 $TRAVIS_BUILD_DIR/../xbmc/project/cmake/addons
4141
4242 script: make
33
44 enable_language(CXX)
55
6 find_package(kodi REQUIRED)
6 find_package(Kodi REQUIRED)
77 find_package(kodiplatform REQUIRED)
8 find_package(platform REQUIRED)
8 find_package(p8-platform REQUIRED)
99
1010 include_directories(${kodiplatform_INCLUDE_DIRS}
11 ${platform_INCLUDE_DIRS}
11 ${p8-platform_INCLUDE_DIRS}
1212 ${KODI_INCLUDE_DIR})
1313
1414 add_definitions(-DUSE_DEMUX)
1919 src/utilities.cpp)
2020
2121 set(DEPLIBS ${kodiplatform_LIBRARIES}
22 ${platform_LIBRARIES})
22 ${p8-platform_LIBRARIES})
2323
2424 if (WIN32)
2525 list(APPEND DEPLIBS ws2_32)
0 [![Build Status](https://travis-ci.org/kodi-pvr/pvr.wmc.svg?branch=Jarvis)](https://travis-ci.org/kodi-pvr/pvr.wmc)
0 [![Build Status](https://travis-ci.org/kodi-pvr/pvr.wmc.svg?branch=master)](https://travis-ci.org/kodi-pvr/pvr.wmc)
11 [![Coverity Scan Build Status](https://scan.coverity.com/projects/5120/badge.svg)](https://scan.coverity.com/projects/5120)
22
33 # Windows Media Center PVR
00 <?xml version="1.0" encoding="UTF-8"?>
11 <addon
22 id="pvr.wmc"
3 version="0.6.15"
3 version="1.4.4"
44 name="PVR WMC Client"
55 provider-name="KrustyReturns and scarecrow420">
66 <requires>
77 <c-pluff version="0.1"/>
8 <import addon="xbmc.pvr" version="4.1.0"/>
9 <import addon="kodi.guilib" version="5.10.0"/>
8 <import addon="xbmc.pvr" version="5.2.0"/>
109 </requires>
1110 <extension
1211 point="xbmc.pvrclient"
2726 <summary lang="en_US">PVR WMC Client</summary>
2827 <summary lang="es_AR">Cliente PVR WMC</summary>
2928 <summary lang="es_ES">Cliente PVR WMC</summary>
29 <summary lang="es_MX">Cliente PVR WMC</summary>
3030 <summary lang="fi_FI">PVR WMC asiakas</summary>
3131 <summary lang="fr_CA">Client de numériscope pour CMW</summary>
3232 <summary lang="fr_FR">Client enregistreur vidéo (PVR) WMC</summary>
4747 <summary lang="nl_NL">PVR WMC Cliënt</summary>
4848 <summary lang="pl_PL">Klient telewizji dla WMC</summary>
4949 <summary lang="pt_BR">Cliente de PVR WMC</summary>
50 <summary lang="pt_PT">Cliente PVR WMC</summary>
50 <summary lang="pt_PT">Cliente WMC PVR</summary>
5151 <summary lang="ro_RO">Client PVR WMC </summary>
5252 <summary lang="ru_RU">Клиент PVR WMC</summary>
5353 <summary lang="sk_SK">PVR WMC klient</summary>
7171 <description lang="en_US">@OS@ @ARCHITECTURE@ Edition. A PVR client to interface with Windows Media Center's Recording and EPG services. Thanks to Tomba73 and Hoopsdavis. Special thanks to DBurckh.</description>
7272 <description lang="es_AR">Edición @OS@ @ARCHITECTURE@. Un cliente A PVR para interactuar con los servicios Recording &amp; EPG de Windows Media Center. Gracias a Tomba73 y Hoopsdavis. Agradecimientos especiales a DBurckh.</description>
7373 <description lang="es_ES">Edición @OS@ @ARCHITECTURE@. Un cliente PVR que hace de interface con los servicios de grabación y EPG de Windows Media Center. Agradecimientos a Tomba73 y Hoopsdavis. Agradecimientos especiales a DBurckh.</description>
74 <description lang="fi_FI">@OS@ @ARCHITECTURE@ -versio. Tämä PVR-lisäosa toimii Windows Media Centerin kanssa. Kiitokset Tomba 73:lle ja Hoopsdavisille. Erityiskiitokset DBurckhille.</description>
7475 <description lang="fr_CA">Édition @ARCHITECTURE@ @SE@. Un client de numériscope pour interfacer avec les services d'enregistrement et de GÉP du Centre Multimédia Windows. Merci à Tomba73 et Hoopsdavis. Un grand merci à DBurckh.</description>
7576 <description lang="fr_FR">Édition @OS@ @ARCHITECTURE@. Un client enregistreur vidéo (PVR) s'interfaçant avec les services d'enregistrement et de guide électronique des programmes TV de Windows Media Center. Merci à Tomba73 et Hoopsdavis. Un merci spécial à DBurckh.</description>
7677 <description lang="gl_ES">Edición @OS@ @ARCHITECTURE@. Un cliente PVR para os servizos de Gravación e Guía do Windows Media Center. Grazas a Tomba73 e Hoopsdavis. Grazas especiais a DBurckh.</description>
9091 <description lang="nl_NL">@OS@ @ARCHITECTUUR@ Editie. Een PVR-cliënt om te samen te werken met Windows Mediacenters opname en EPG-diensten, dank aan Tomba73 and Hoopsdavis. Speciale dank gaat uit naar DBurckh.</description>
9192 <description lang="pl_PL">Edycja dla @OS@ @ARCHITECTURE@. Klient telewizji dla Windows Media Center. Podziękowania dla Tomba73 i Hoopsdavis. Specjalne podziękowania dla DBurckh.</description>
9293 <description lang="pt_BR">Edição @OS@ @ARCHITECTURE@. Um cliente de PVR para fazer a ponte com recurso de gravação e serviços de EPG do Windows Media Center. Obrigado Tomba73 e Hoopsdavis. Agradecimento Especial a DBurckh.</description>
93 <description lang="pt_PT">Edição @OS@ @ARCHITECTURE@. Um cliente de PVR para fazer a interface com a gravação e serviços de EPG do Windows Media Center. Obrigado a Tomba73 e Hoopsdavis. Um agradecimento especial a DBurckh.</description>
94 <description lang="pt_PT">Edição @OS@ @ARCHITECTURE@. Um cliente de PVR para fazer a interface com a gravação e serviços de EPG do Windows Media Center. Obrigado a Tomba73 e Hoopsdavis. Um agradecimento especial a DBurckh.</description>
9495 <description lang="ro_RO">Ediția @OS@ @ARCHITECTURE@. Un client PVR client pentru conectarea cu înregistrările și serviciile EPG ale Windows Media Center. Mulțumiri lui Tomba73 și Hoopsdavis. Mulțumiri speciale lui DBurckh.</description>
9596 <description lang="ru_RU">Редакция @OS@ @ARCHITECTURE@.Клиент PVR для взаимодействия с записью Windows Media Center и сервисом EPG. Благодарности Tomba73 и Hoopsdavis. Особые благодарности DBurckh.</description>
9697 <description lang="sk_SK">Klient pre @OS@ @ARCHITECTURE@. PVR klient pre prístup k Windows Media Center nahrávkam a EPG informáciám. Poďakovanie pre Tomba73 a Hoopsdavis. Špeciálne poďakovanie pre DBurckh.</description>
113114 <disclaimer lang="en_US">This is experimental software. Use at your own risk.</disclaimer>
114115 <disclaimer lang="es_AR">Este software es experimental. Úselo bajo su propio riesgo.</disclaimer>
115116 <disclaimer lang="es_ES">Es un programa experimental. Úsalo bajo tu responsabilidad.</disclaimer>
117 <disclaimer lang="es_MX">Este es software experimental. Usalo bajo tu propio riesgo.</disclaimer>
116118 <disclaimer lang="fi_FI">Tämä on kokeellista ohjelmistoa. Käytä omalla vastuulla.</disclaimer>
117119 <disclaimer lang="fr_CA">Ce logiciel est expérimental. Utilisez à vos propres risques.</disclaimer>
118120 <disclaimer lang="fr_FR">Logiciel expérimental. À utiliser à vos risques et périls.</disclaimer>
0 0.6.15
1 - Updated Language files from Transifex
2
3 0.6.14
4 - Updated Language files from Transifex
0 1.4.4
1 - Updated Language files from Transifex
2
3 1.4.3
4 - Updated Language files from Transifex
5
6 1.4.2
7 - Updated Language files from Transifex
8
9 1.4.1
10 - Updated Language files from Transifex
11
12 1.4.0
13 - Cmake: rename find_package kodi to Kodi
14
15 1.3.1
16 - Fix includes
17
18 1.3.0
19 - Updated to PVR addon API v5.2.0
20
21 1.2.1
22 - Updated to PVR addon API v5.1.1
23
24 1.2.0
25 - Updated to PVR addon API v5.1.0
26
27 1.1.2
28 - added support for buffer timeshift calls
29 - added fix for new recordings bug
30
31 1.1.1
32 - Populate Channel UID field on recordings
33
34 1.1.0
35 - Updated to PVR addon API v5.0.0
36
37 1.0.2
38 - Updated to PVR API v4.2.0
39
40 1.0.1
41 - Updated Language files from Transifex
42
43 1.0.0
44 - Initial Kodi Krypton version.
545
646 0.6.13
747 - Updated Language files from Transifex
194194 msgctxt "#30142"
195195 msgid "Low"
196196 msgstr "Ниско"
197
198 msgctxt "#30160"
199 msgid "Not Set"
200 msgstr "Няма поредица"
8181
8282 msgctxt "#30016"
8383 msgid "Store Resume/Watched status on server"
84 msgstr "Uložit čas \"Začít od\" / \"Shlédnuto\" na serveru"
84 msgstr "Uložit čas \"Začít od\" / \"Zhlédnuto\" na serveru"
8585
8686 msgctxt "#30017"
8787 msgid "Recorded TV folder not found"
245245
246246 msgctxt "#30162"
247247 msgid "Keep Until I Watch"
248 msgstr "Uchovávat do shlédnutí"
248 msgstr "Uchovávat do zhlédnutí"
249249
250250 msgctxt "#30163"
251251 msgid "Keep Until Space Needed"
183183 msgid "Delete the entire series"
184184 msgstr "Διαγραφή όλης της σειράς"
185185
186 msgctxt "#30131"
187 msgid "One time (manual)"
188 msgstr "Μία φορά (χειροποίητα)"
189
186190 msgctxt "#30140"
187191 msgid "Normal"
188192 msgstr "Κανονική"
194198 msgctxt "#30142"
195199 msgid "Low"
196200 msgstr "Ελαχ."
201
202 msgctxt "#30151"
203 msgid "New and Rerun Episodes"
204 msgstr "Καινούργια και επανάληψη επεισοδίων"
1414 "Content-Transfer-Encoding: 8bit\n"
1515 "Language: es_MX\n"
1616 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
18 msgctxt "#30000"
19 msgid "Server Hostname or IP"
20 msgstr "Nombre del Servidor o IP"
21
22 msgctxt "#30001"
23 msgid "Keep IP address to 127.0.0.1, if server is running on this same system"
24 msgstr "Mantener la IP en 127.0.0.1, si el servidor esta funcionando en este mismo sistema"
25
26 msgctxt "#30002"
27 msgid "Port Number"
28 msgstr "Numero de Puerto"
29
30 msgctxt "#30004"
31 msgid "No video data found on this channel"
32 msgstr "No se encontraron datos de video en este canal "
33
34 msgctxt "#30005"
35 msgid "Tuner is needed for recording"
36 msgstr "Es nescesario un sintonizador para grabar"
37
38 msgctxt "#30006"
39 msgid "Recording delete failed, file in use or write protected"
40 msgstr "Fallo la eliminacion de la grabacion, el archivo esta en uso o esta protegido contra escritura"
41
42 msgctxt "#30007"
43 msgid "Recording delete failed, recorded file doesn't exist"
44 msgstr "Fallo la eliminacion de la grabacion, el archivo grabado no existe"
45
46 msgctxt "#30008"
47 msgid "Recording file not found"
48 msgstr "Archivo de grabacion no encontrado"
49
50 msgctxt "#30009"
51 msgid "Alternate channel chosen: "
52 msgstr "Canal alterno elegido:"
53
54 msgctxt "#30010"
55 msgid "Alternate time chosen: "
56 msgstr "Tiempo alterno elegido:"
57
58 msgctxt "#30011"
59 msgid "Can't start, tuner is no longer available"
60 msgstr "No se puede iniciar, el sintonizador ya no esta disponible"
61
62 msgctxt "#30012"
63 msgid "Channel content is protected"
64 msgstr "El contenido del canal esta protegido"
1765
1866 msgctxt "#30101"
1967 msgid "Record this episode only"
8585
8686 msgctxt "#30017"
8787 msgid "Recorded TV folder not found"
88 msgstr "Tallennettu TV kansiota ei löydy"
88 msgstr "Tv-ohjelmien tallennuskansiota ei löytynyt"
8989
9090 msgctxt "#30018"
9191 msgid "Recorded TV folder cannot be opened"
92 msgstr "Tallennettu TV kansiota ei voida avata"
92 msgstr "Tv-ohjelmien tallennuskansiota ei voida avata"
9393
9494 msgctxt "#30019"
9595 msgid "ServerWMC version update is available (%s)"
101101
102102 msgctxt "#30021"
103103 msgid "LiveTV timed-out"
104 msgstr "LiveTV aikakatkaisu"
104 msgstr "Tv-lähetyksen aikakatkaisu"
105
106 msgctxt "#30022"
107 msgid "LiveTV error, exited early"
108 msgstr "Virhe tv-lähetystä toistettaessa, lopetettiin etuajassa"
109
110 msgctxt "#30023"
111 msgid "Recording stream timed-out"
112 msgstr "Tallennuksen aikakatkaisu"
113
114 msgctxt "#30024"
115 msgid "Recording stream exited early"
116 msgstr "Tallennus keskeytyi ennenaikaisesti"
105117
106118 msgctxt "#30025"
107119 msgid "Use WakeOnLAN to wake up server"
111123 msgid "Sending WakeOnLAN to server..."
112124 msgstr "Lähetetään WakeOnLan palvelimelle..."
113125
126 msgctxt "#30027"
127 msgid "Time drift between client and backend of %s minutes"
128 msgstr "Asiakasohjelman ja taustaosan välinen aikaero %s minuuttia"
129
114130 msgctxt "#30100"
115131 msgid "Recording Preference"
116132 msgstr "Tallennusasetukset"
123139 msgid "Record the series"
124140 msgstr "Tallenna sarjoja"
125141
142 msgctxt "#30103"
143 msgid "Show type:"
144 msgstr "Ohjelmatyyppi:"
145
126146 msgctxt "#30104"
127147 msgid "New and rerun"
128148 msgstr "Uusi ja uusinta"
163183 msgid "Delete the entire series"
164184 msgstr "Poista koko sarja"
165185
186 msgctxt "#30130"
187 msgid "Created by Repeating Timer"
188 msgstr "Luotu toistuvalla ajastuksella"
189
166190 msgctxt "#30131"
167191 msgid "One time (manual)"
168192 msgstr "Kerran (manuaalinen)"
187187 msgid "Created by Repeating Timer"
188188 msgstr "נוצר ע\"י תזמון חוזר"
189189
190 msgctxt "#30131"
191 msgid "One time (manual)"
192 msgstr "פעם אחת (ידני)"
193
190194 msgctxt "#30132"
191195 msgid "One time (guide)"
192196 msgstr "חד פעמי (לוח שידורים)"
193197
198 msgctxt "#30133"
199 msgid "One time (wishlist)"
200 msgstr "(פעם אחת (רשימת בקשות"
201
194202 msgctxt "#30134"
195203 msgid "Repeating (manual)"
196204 msgstr "חוזר (ידני)"
199207 msgid "Repeating (guide)"
200208 msgstr "חוזר (לוח שידורים)"
201209
210 msgctxt "#30136"
211 msgid "Repeating (wishlist)"
212 msgstr "(חזרה (רשימת בקשות"
213
202214 msgctxt "#30140"
203215 msgid "Normal"
204216 msgstr "רגיל"
210222 msgctxt "#30142"
211223 msgid "Low"
212224 msgstr "נמוך"
225
226 msgctxt "#30150"
227 msgid "New Episodes Only"
228 msgstr "רק פרקים חדשים"
229
230 msgctxt "#30151"
231 msgid "New and Rerun Episodes"
232 msgstr "פרקים חדשים בשידור חוזר"
233
234 msgctxt "#30152"
235 msgid "Live Only"
236 msgstr "שידור חי בלבד"
237
238 msgctxt "#30160"
239 msgid "Not Set"
240 msgstr "לא מוגדר"
241
242 msgctxt "#30161"
243 msgid "Keep Latest Recordings"
244 msgstr "שמור הקלטות אחרונות"
245
246 msgctxt "#30162"
247 msgid "Keep Until I Watch"
248 msgstr "שמור רק כשאני צופה"
249
250 msgctxt "#30163"
251 msgid "Keep Until Space Needed"
252 msgstr "שמור כאשר נדרש אחסון"
253
254 msgctxt "#30164"
255 msgid "Keep Until I Delete"
256 msgstr "שמור עד שאני מוחק"
257
258 msgctxt "#30165"
259 msgid "Keep For 1 Week"
260 msgstr "שמור לשבוע"
261
262 msgctxt "#30170"
263 msgid "Keep As Many As Possible"
264 msgstr "שמור הרבה ככל האפשר"
265
266 msgctxt "#30171"
267 msgid "Keep 1 Recording"
268 msgstr "שמור הקלטה"
269
270 msgctxt "#30172"
271 msgid "Keep 2 Recordings"
272 msgstr "שמור 2 הקלטות"
273
274 msgctxt "#30173"
275 msgid "Keep 3 Recordings"
276 msgstr "שמור 3 הקלטות"
277
278 msgctxt "#30174"
279 msgid "Keep 4 Recordings"
280 msgstr "שמור 4 הקלטות"
281
282 msgctxt "#30175"
283 msgid "Keep 5 Recordings"
284 msgstr "שמור 5 הקלטות"
285
286 msgctxt "#30176"
287 msgid "Keep 6 Recordings"
288 msgstr "שמור 6 הקלטות"
289
290 msgctxt "#30177"
291 msgid "Keep 7 Recordings"
292 msgstr "שמור 7 הקלטות"
293
294 msgctxt "#30178"
295 msgid "Keep 10 Recordings"
296 msgstr "שמור 10 הקלטות"
183183 msgid "Delete the entire series"
184184 msgstr "전체 시리즈 삭제"
185185
186 msgctxt "#30130"
187 msgid "Created by Repeating Timer"
188 msgstr "반복 타이머로 생성"
189
190 msgctxt "#30131"
191 msgid "One time (manual)"
192 msgstr "한 번 (수동)"
193
194 msgctxt "#30132"
195 msgid "One time (guide)"
196 msgstr "한 번 (가이드)"
197
198 msgctxt "#30133"
199 msgid "One time (wishlist)"
200 msgstr "한 번 (소원목록)"
201
202 msgctxt "#30134"
203 msgid "Repeating (manual)"
204 msgstr "반복 (수동)"
205
206 msgctxt "#30135"
207 msgid "Repeating (guide)"
208 msgstr "반복 (가이드)"
209
210 msgctxt "#30136"
211 msgid "Repeating (wishlist)"
212 msgstr "반복 (소원목록)"
213
186214 msgctxt "#30140"
187215 msgid "Normal"
188216 msgstr "보통"
194222 msgctxt "#30142"
195223 msgid "Low"
196224 msgstr "낮음"
225
226 msgctxt "#30150"
227 msgid "New Episodes Only"
228 msgstr "최신 에피소드만"
229
230 msgctxt "#30151"
231 msgid "New and Rerun Episodes"
232 msgstr "최신 및 재방영 에피소드"
233
234 msgctxt "#30152"
235 msgid "Live Only"
236 msgstr "라이브 만"
237
238 msgctxt "#30160"
239 msgid "Not Set"
240 msgstr "설정되지 않음"
241
242 msgctxt "#30161"
243 msgid "Keep Latest Recordings"
244 msgstr "최신 녹화 보존"
245
246 msgctxt "#30162"
247 msgid "Keep Until I Watch"
248 msgstr "시청할 때까지 보존"
249
250 msgctxt "#30163"
251 msgid "Keep Until Space Needed"
252 msgstr "저장공간이 더 필요할 때까지 보존"
253
254 msgctxt "#30164"
255 msgid "Keep Until I Delete"
256 msgstr "삭제할 때까지 보존"
257
258 msgctxt "#30165"
259 msgid "Keep For 1 Week"
260 msgstr "1주일 보존"
261
262 msgctxt "#30170"
263 msgid "Keep As Many As Possible"
264 msgstr "최대한 보존"
265
266 msgctxt "#30171"
267 msgid "Keep 1 Recording"
268 msgstr "녹화 1편 보존"
269
270 msgctxt "#30172"
271 msgid "Keep 2 Recordings"
272 msgstr "녹화 2편 보존"
273
274 msgctxt "#30173"
275 msgid "Keep 3 Recordings"
276 msgstr "녹화 3편 보존"
277
278 msgctxt "#30174"
279 msgid "Keep 4 Recordings"
280 msgstr "녹화 4편 보존"
281
282 msgctxt "#30175"
283 msgid "Keep 5 Recordings"
284 msgstr "녹화 5편 보존"
285
286 msgctxt "#30176"
287 msgid "Keep 6 Recordings"
288 msgstr "녹화 6편 보존"
289
290 msgctxt "#30177"
291 msgid "Keep 7 Recordings"
292 msgstr "녹화 7편 보존"
293
294 msgctxt "#30178"
295 msgid "Keep 10 Recordings"
296 msgstr "녹화 10편 보존"
1515 "Language: mn_MN\n"
1616 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
1717
18 msgctxt "#30140"
19 msgid "Normal"
20 msgstr "Энгийн"
21
1822 msgctxt "#30141"
1923 msgid "High"
2024 msgstr "Өндөр"
183183 msgid "Delete the entire series"
184184 msgstr "Slett hele serien"
185185
186 msgctxt "#30130"
187 msgid "Created by Repeating Timer"
188 msgstr "Opprettet av Gjentangende Ur"
189
190 msgctxt "#30131"
191 msgid "One time (manual)"
192 msgstr "En gang (manuell)"
193
194 msgctxt "#30132"
195 msgid "One time (guide)"
196 msgstr "En gang (guide)"
197
198 msgctxt "#30133"
199 msgid "One time (wishlist)"
200 msgstr "En gang (ønskeliste)"
201
202 msgctxt "#30134"
203 msgid "Repeating (manual)"
204 msgstr "Gjentagende (manuell)"
205
206 msgctxt "#30135"
207 msgid "Repeating (guide)"
208 msgstr "Gjentagende (guide)"
209
210 msgctxt "#30136"
211 msgid "Repeating (wishlist)"
212 msgstr "Gjentagende (ønskeliste)"
213
186214 msgctxt "#30140"
187215 msgid "Normal"
188216 msgstr "Normal"
194222 msgctxt "#30142"
195223 msgid "Low"
196224 msgstr "Lav"
225
226 msgctxt "#30150"
227 msgid "New Episodes Only"
228 msgstr "Kun nye episoder"
229
230 msgctxt "#30151"
231 msgid "New and Rerun Episodes"
232 msgstr "Nye og reprise episoder"
233
234 msgctxt "#30152"
235 msgid "Live Only"
236 msgstr "Kun direkte"
237
238 msgctxt "#30160"
239 msgid "Not Set"
240 msgstr "Ikke satt"
241
242 msgctxt "#30161"
243 msgid "Keep Latest Recordings"
244 msgstr "Behold siste opptak"
245
246 msgctxt "#30162"
247 msgid "Keep Until I Watch"
248 msgstr "Behold til sett"
249
250 msgctxt "#30163"
251 msgid "Keep Until Space Needed"
252 msgstr "Behold til plass trengs"
253
254 msgctxt "#30164"
255 msgid "Keep Until I Delete"
256 msgstr "Behold til jeg sletter"
257
258 msgctxt "#30165"
259 msgid "Keep For 1 Week"
260 msgstr "Behold i 1 uke"
261
262 msgctxt "#30170"
263 msgid "Keep As Many As Possible"
264 msgstr "Behold så mange som mulig"
265
266 msgctxt "#30171"
267 msgid "Keep 1 Recording"
268 msgstr "Behold 1 opptak"
269
270 msgctxt "#30172"
271 msgid "Keep 2 Recordings"
272 msgstr "Behold 2 opptak"
273
274 msgctxt "#30173"
275 msgid "Keep 3 Recordings"
276 msgstr "Behold 3 opptak"
277
278 msgctxt "#30174"
279 msgid "Keep 4 Recordings"
280 msgstr "Behold 4 opptak"
281
282 msgctxt "#30175"
283 msgid "Keep 5 Recordings"
284 msgstr "Behold 5 opptak"
285
286 msgctxt "#30176"
287 msgid "Keep 6 Recordings"
288 msgstr "Behold 6 opptak"
289
290 msgctxt "#30177"
291 msgid "Keep 7 Recordings"
292 msgstr "Behold 7 opptak"
293
294 msgctxt "#30178"
295 msgid "Keep 10 Recordings"
296 msgstr "Behold 10 opptak"
2121
2222 msgctxt "#30001"
2323 msgid "Keep IP address to 127.0.0.1, if server is running on this same system"
24 msgstr "Usar o endereço IP 127.0.0.1, se o servidor estiver presente no mesmo sistema"
24 msgstr "Usar o IP 127.0.0.1, se o servidor estiver presente no mesmo sistema"
2525
2626 msgctxt "#30002"
2727 msgid "Port Number"
2929
3030 msgctxt "#30003"
3131 msgid "Stream timeout, unknown problem"
32 msgstr "O tempo limite da transmissão esgotou, problema desconhecido"
32 msgstr "Tempo limite da emissão foi atingido por um motivo desconhecido"
3333
3434 msgctxt "#30004"
3535 msgid "No video data found on this channel"
3737
3838 msgctxt "#30005"
3939 msgid "Tuner is needed for recording"
40 msgstr "Para gravar, é necessário um sintonizador"
40 msgstr "Reque um sintonizador para a gravação"
4141
4242 msgctxt "#30006"
4343 msgid "Recording delete failed, file in use or write protected"
4949
5050 msgctxt "#30008"
5151 msgid "Recording file not found"
52 msgstr "O ficheiro da gravação não foi encontrado"
52 msgstr "Ficheiro de gravação não encontrado"
5353
5454 msgctxt "#30009"
5555 msgid "Alternate channel chosen: "
56 msgstr "Foi escolhido um canal alternativo"
56 msgstr "Canal alternativo escolhido:"
5757
5858 msgctxt "#30010"
5959 msgid "Alternate time chosen: "
60 msgstr "Foi escolhida uma hora alternativa"
60 msgstr "Hora alternativa escolhida:"
6161
6262 msgctxt "#30011"
6363 msgid "Can't start, tuner is no longer available"
64 msgstr "Não é possível iniciar, o sintonizador já não está disponível"
64 msgstr "Não é possível iniciar, o sintonizador não está disponível"
6565
6666 msgctxt "#30012"
6767 msgid "Channel content is protected"
7373
7474 msgctxt "#30014"
7575 msgid "Enable SignalStatus calls"
76 msgstr "Permitir chamadas SignalStatus"
76 msgstr "Ativar chamadas SignalStatus"
7777
7878 msgctxt "#30015"
7979 msgid "Refresh SignalStatus Interval (sec)"
80 msgstr "Intervalo de actualização SignalStatus (seg)"
80 msgstr "Intervalo de atualização SignalStatus (seg)"
8181
8282 msgctxt "#30016"
8383 msgid "Store Resume/Watched status on server"
84 msgstr "Armazenar tempos de visionamento no servidor"
84 msgstr "Guardar tempos de visionamento no servidor"
8585
8686 msgctxt "#30017"
8787 msgid "Recorded TV folder not found"
88 msgstr "A pasta de gravações de TV não foi encontrada"
88 msgstr "Pasta de gravações não encontrada"
8989
9090 msgctxt "#30018"
9191 msgid "Recorded TV folder cannot be opened"
92 msgstr "Não é possível abrir a pasta de gravações de TV"
92 msgstr "Não foi possível abrir a pasta de gravações"
9393
9494 msgctxt "#30019"
9595 msgid "ServerWMC version update is available (%s)"
96 msgstr "Está disponível uma versão actualizada de ServerWMC (%s)"
96 msgstr "Existe uma atualização para ServerWMC (%s)"
9797
9898 msgctxt "#30020"
9999 msgid "All tuners for this channel are busy"
101101
102102 msgctxt "#30021"
103103 msgid "LiveTV timed-out"
104 msgstr "O tempo limite de LiveTV terminou"
104 msgstr "TV em direto expirada"
105105
106106 msgctxt "#30022"
107107 msgid "LiveTV error, exited early"
109109
110110 msgctxt "#30023"
111111 msgid "Recording stream timed-out"
112 msgstr "O tempo limite da gravação expirou"
112 msgstr "A emissão de gravação expirou"
113113
114114 msgctxt "#30024"
115115 msgid "Recording stream exited early"
116 msgstr "A gravação encerrou antes do tempo"
116 msgstr "A emissão de gravação encerrou antes do tempo"
117117
118118 msgctxt "#30025"
119119 msgid "Use WakeOnLAN to wake up server"
120 msgstr "Usar WakeOnLan para iniciar o servidor. "
120 msgstr "Usar WakeOnLan para iniciar o servidor"
121121
122122 msgctxt "#30026"
123123 msgid "Sending WakeOnLAN to server..."
124 msgstr "A enviar pacote WakeOnLan para servidor..."
124 msgstr "A enviar pacote WakeOnLan para o servidor..."
125125
126126 msgctxt "#30027"
127127 msgid "Time drift between client and backend of %s minutes"
128 msgstr "Desvio de tempo entre o cliente e a backend de %s minutos"
128 msgstr "Desvio de tempo entre o cliente e a estrutura de %s minutos"
129129
130130 msgctxt "#30100"
131131 msgid "Recording Preference"
132 msgstr "Preferência de Gravação"
132 msgstr "Preferência de gravação"
133133
134134 msgctxt "#30101"
135135 msgid "Record this episode only"
136 msgstr "Gravar apenas este episódi"
136 msgstr "Gravar apenas este episódio"
137137
138138 msgctxt "#30102"
139139 msgid "Record the series"
145145
146146 msgctxt "#30104"
147147 msgid "New and rerun"
148 msgstr "Estreias e reposições"
148 msgstr "Novas e reposições"
149149
150150 msgctxt "#30105"
151151 msgid "New only"
152 msgstr "Apenas estreias"
152 msgstr "Apenas novas"
153153
154154 msgctxt "#30106"
155155 msgid "Live only"
161161
162162 msgctxt "#30108"
163163 msgid "Any Channel"
164 msgstr "Qualquer Canal"
164 msgstr "Qualquer canal"
165165
166166 msgctxt "#30110"
167167 msgid "Airtime:"
173173
174174 msgctxt "#30120"
175175 msgid "Delete Timer"
176 msgstr "Apagar Temporizador"
176 msgstr "Apagar temporizador"
177177
178178 msgctxt "#30121"
179179 msgid "Delete this episode timer only"
180 msgstr "Apagar apenas este temporizador de episódio"
180 msgstr "Apagar apenas este temporizador"
181181
182182 msgctxt "#30122"
183183 msgid "Delete the entire series"
184184 msgstr "Apagar toda a série"
185185
186 msgctxt "#30130"
187 msgid "Created by Repeating Timer"
188 msgstr "Criada por um temporizador recorrente"
189
190 msgctxt "#30131"
191 msgid "One time (manual)"
192 msgstr "Uma vez (manual)"
193
194 msgctxt "#30132"
195 msgid "One time (guide)"
196 msgstr "Uma vez (guia)"
197
198 msgctxt "#30133"
199 msgid "One time (wishlist)"
200 msgstr "Uma vez (lista de desejos)"
201
202 msgctxt "#30134"
203 msgid "Repeating (manual)"
204 msgstr "Repetição (manual)"
205
206 msgctxt "#30135"
207 msgid "Repeating (guide)"
208 msgstr "Repetição (guia)"
209
210 msgctxt "#30136"
211 msgid "Repeating (wishlist)"
212 msgstr "Repetição (lista de desejos)"
213
186214 msgctxt "#30140"
187215 msgid "Normal"
188216 msgstr "Normal"
195223 msgid "Low"
196224 msgstr "Baixa"
197225
226 msgctxt "#30150"
227 msgid "New Episodes Only"
228 msgstr "Apenas novos episódios"
229
230 msgctxt "#30151"
231 msgid "New and Rerun Episodes"
232 msgstr "Reposições e novos episódios"
233
234 msgctxt "#30152"
235 msgid "Live Only"
236 msgstr "Apenas em direto"
237
238 msgctxt "#30160"
239 msgid "Not Set"
240 msgstr "Não definido"
241
242 msgctxt "#30161"
243 msgid "Keep Latest Recordings"
244 msgstr "Manter últimas gravações"
245
246 msgctxt "#30162"
247 msgid "Keep Until I Watch"
248 msgstr "Manter até serem vistos"
249
250 msgctxt "#30163"
251 msgid "Keep Until Space Needed"
252 msgstr "Manter até que seja necessário espaço"
253
254 msgctxt "#30164"
255 msgid "Keep Until I Delete"
256 msgstr "Manter até eu que os apague"
257
258 msgctxt "#30165"
259 msgid "Keep For 1 Week"
260 msgstr "Manter por 1 semana"
261
262 msgctxt "#30170"
263 msgid "Keep As Many As Possible"
264 msgstr "Manter o máximo de tempo possível"
265
198266 msgctxt "#30171"
199267 msgid "Keep 1 Recording"
200268 msgstr "Manter 1 gravação"
183183 msgid "Delete the entire series"
184184 msgstr "Odstrániť časovač pre celú sériu"
185185
186 msgctxt "#30130"
187 msgid "Created by Repeating Timer"
188 msgstr "Vytvorené opakujúcim sa časovačom"
189
190 msgctxt "#30131"
191 msgid "One time (manual)"
192 msgstr "Iba raz (ručne)"
193
194 msgctxt "#30132"
195 msgid "One time (guide)"
196 msgstr "Iba raz (TV program)"
197
198 msgctxt "#30133"
199 msgid "One time (wishlist)"
200 msgstr "Iba raz (zoznam želaní)"
201
202 msgctxt "#30134"
203 msgid "Repeating (manual)"
204 msgstr "Opakovanie (ručne)"
205
206 msgctxt "#30135"
207 msgid "Repeating (guide)"
208 msgstr "Opakovanie (TV program)"
209
210 msgctxt "#30136"
211 msgid "Repeating (wishlist)"
212 msgstr "Opakovanie (zoznam želaní)"
213
186214 msgctxt "#30140"
187215 msgid "Normal"
188216 msgstr "Normálny"
195223 msgid "Low"
196224 msgstr "Nízka"
197225
226 msgctxt "#30150"
227 msgid "New Episodes Only"
228 msgstr "Len nové epizódy"
229
230 msgctxt "#30151"
231 msgid "New and Rerun Episodes"
232 msgstr "Nové a reprízované epizódy"
233
198234 msgctxt "#30152"
199235 msgid "Live Only"
200236 msgstr "Iba naživo"
206242 msgctxt "#30161"
207243 msgid "Keep Latest Recordings"
208244 msgstr "Ponechať najnovšie nahrávky"
245
246 msgctxt "#30162"
247 msgid "Keep Until I Watch"
248 msgstr "Ponechať, dokiaľ si to nepozriem"
249
250 msgctxt "#30163"
251 msgid "Keep Until Space Needed"
252 msgstr "Ponechať, dokiaľ nebude potrebné miesto"
253
254 msgctxt "#30164"
255 msgid "Keep Until I Delete"
256 msgstr "Ponechať, dokiaľ to nevymažem"
257
258 msgctxt "#30165"
259 msgid "Keep For 1 Week"
260 msgstr "Ponechať 1 týždeň"
261
262 msgctxt "#30170"
263 msgid "Keep As Many As Possible"
264 msgstr "Ponechať toľko, koľko sa dá"
265
266 msgctxt "#30171"
267 msgid "Keep 1 Recording"
268 msgstr "Ponechať 1 nahrávku"
269
270 msgctxt "#30172"
271 msgid "Keep 2 Recordings"
272 msgstr "Ponechať 2 nahrávky"
273
274 msgctxt "#30173"
275 msgid "Keep 3 Recordings"
276 msgstr "Ponechať 3 nahrávky"
277
278 msgctxt "#30174"
279 msgid "Keep 4 Recordings"
280 msgstr "Ponechať 4 nahrávky"
281
282 msgctxt "#30175"
283 msgid "Keep 5 Recordings"
284 msgstr "Ponechať 5 nahrávok"
285
286 msgctxt "#30176"
287 msgid "Keep 6 Recordings"
288 msgstr "Ponechať 6 nahrávok"
289
290 msgctxt "#30177"
291 msgid "Keep 7 Recordings"
292 msgstr "Ponechať 7 nahrávok"
293
294 msgctxt "#30178"
295 msgid "Keep 10 Recordings"
296 msgstr "Ponechať 10 nahrávok"
194194 msgctxt "#30142"
195195 msgid "Low"
196196 msgstr "Düşük"
197
198 msgctxt "#30150"
199 msgid "New Episodes Only"
200 msgstr "Sadece Yeni Bölümler"
1717 *
1818 */
1919
20 #include "kodi/libXBMC_addon.h"
20 #include "libXBMC_addon.h"
2121 #include <string>
22 #include "platform/os.h"
22 #include "p8-platform/os.h"
2323 #include "client.h"
2424 #include "Socket.h"
2525
2626 #include "utilities.h"
27 #include "platform/util/timeutils.h"
28 #include "platform/threads/mutex.h"
27 #include "p8-platform/util/timeutils.h"
28 #include "p8-platform/threads/mutex.h"
2929
3030 using namespace std;
3131 using namespace ADDON;
3232
33 PLATFORM::CMutex m_mutex;
33 P8PLATFORM::CMutex m_mutex;
3434
3535 /* Master defines for client control */
3636 //#define RECEIVE_TIMEOUT 6 //sec
592592 int maxAttempts = 3;
593593 int sleepAttemptsMs = 1000;
594594
595 PLATFORM::CLockObject lock(m_mutex); // only process one request at a time
595 P8PLATFORM::CLockObject lock(m_mutex); // only process one request at a time
596596
597597 int code;
598598 std::vector<CStdString> reponses;
1818 */
1919
2020 #include "client.h"
21 #include "kodi/xbmc_pvr_dll.h"
22 #include "kodi/libKODI_guilib.h"
21 #include "xbmc_pvr_dll.h"
2322 #include "pvr2wmc.h"
2423 #include "utilities.h"
25 #include "platform/util/util.h"
24 #include "p8-platform/util/util.h"
2625
2726 using namespace std;
2827 using namespace ADDON;
6665
6766 CHelper_libXBMC_addon *XBMC = NULL;
6867 CHelper_libXBMC_pvr *PVR = NULL;
69 CHelper_libKODI_guilib *GUI = NULL;
7068
7169 #define LOCALHOST "127.0.0.1"
7270
173171 return ADDON_STATUS_PERMANENT_FAILURE;
174172 }
175173
176 // register gui
177 GUI = new CHelper_libKODI_guilib;
178 if (!GUI->RegisterMe(hdl))
179 {
180 SAFE_DELETE(GUI);
181 SAFE_DELETE(XBMC);
182 return ADDON_STATUS_PERMANENT_FAILURE;
183 }
184
185174 // register as pvr
186175 PVR = new CHelper_libXBMC_pvr;
187176 if (!PVR->RegisterMe(hdl))
188177 {
189178 SAFE_DELETE(PVR);
190 SAFE_DELETE(GUI);
191179 SAFE_DELETE(XBMC);
192180 return ADDON_STATUS_PERMANENT_FAILURE;
193181 }
206194 {
207195 SAFE_DELETE(_wmc);
208196 SAFE_DELETE(PVR);
209 SAFE_DELETE(GUI);
210197 SAFE_DELETE(XBMC);
211198 _CurStatus = ADDON_STATUS_LOST_CONNECTION;
212199 }
239226 if (_wmc)
240227 _wmc->UnLoading();
241228 SAFE_DELETE(PVR);
242 SAFE_DELETE(GUI);
243229 _bCreated = false;
244230 _CurStatus = ADDON_STATUS_UNKNOWN;
245231 }
285271 {
286272 }
287273
288 void ADDON_Announce(const char *flag, const char *sender, const char *message, const void *data)
289 {
290 }
291
292274 /***********************************************************
293275 * PVR Client AddOn specific public library functions
294276 ***********************************************************/
295277
278 void OnSystemSleep()
279 {
280 }
281
282 void OnSystemWake()
283 {
284 }
285
286 void OnPowerSavingActivated()
287 {
288 }
289
290 void OnPowerSavingDeactivated()
291 {
292 }
293
296294 const char* GetPVRAPIVersion(void)
297295 {
298296 static const char *strApiVersion = XBMC_PVR_API_VERSION;
307305
308306 const char* GetGUIAPIVersion(void)
309307 {
310 return KODI_GUILIB_API_VERSION;
308 return ""; // GUI API not used
311309 }
312310
313311 const char* GetMininumGUIAPIVersion(void)
314312 {
315 return KODI_GUILIB_MIN_API_VERSION;
313 return ""; // GUI API not used
316314 }
317315
318316 PVR_ERROR GetAddonCapabilities(PVR_ADDON_CAPABILITIES* pCapabilities)
376374 return PVR_ERROR_SERVER_ERROR;
377375 }
378376
379 int GetCurrentClientChannel(void)
380 {
381 return _currentChannel.iUniqueId;
382 }
383
384377 PVR_ERROR GetStreamProperties(PVR_STREAM_PROPERTIES* pProperties)
385378 {
386379 return PVR_ERROR_NOT_IMPLEMENTED;
687680 PVR_ERROR CallMenuHook(const PVR_MENUHOOK &menuhook, const PVR_MENUHOOK_DATA &item)
688681 {
689682 return PVR_ERROR_NOT_IMPLEMENTED;
683 }
684
685 bool IsTimeshifting(void)
686 {
687 if (_wmc)
688 return _wmc->IsTimeShifting();
689 else
690 return false;
691 }
692 time_t GetPlayingTime()
693 {
694 if (_wmc)
695 return _wmc->GetPlayingTime();
696 else
697 return 0;
698 }
699 time_t GetBufferTimeStart()
700 {
701 if (_wmc)
702 return _wmc->GetBufferTimeStart();
703 else
704 return 0;
705 }
706 time_t GetBufferTimeEnd()
707 {
708 if (_wmc)
709 return _wmc->GetBufferTimeEnd();
710 else
711 return 0;
690712 }
691713
692714 /** UNUSED API FUNCTIONS */
704726 const char * GetLiveStreamURL(const PVR_CHANNEL &channel) { return ""; }
705727 bool SeekTime(int,bool,double*) { return false; }
706728 void SetSpeed(int) {};
707 bool IsTimeshifting(void) { return false; }
729 bool IsRealTimeStream(void) { return true; }
708730 PVR_ERROR GetRecordingEdl(const PVR_RECORDING&, PVR_EDL_ENTRY[], int*) { return PVR_ERROR_NOT_IMPLEMENTED; };
709 time_t GetPlayingTime() { return 0; }
710 time_t GetBufferTimeStart() { return 0; }
711 time_t GetBufferTimeEnd() { return 0; }
712731 PVR_ERROR UndeleteRecording(const PVR_RECORDING& recording) { return PVR_ERROR_NOT_IMPLEMENTED; }
713732 PVR_ERROR DeleteAllRecordingsFromTrash() { return PVR_ERROR_NOT_IMPLEMENTED; }
733 PVR_ERROR SetEPGTimeFrame(int) { return PVR_ERROR_NOT_IMPLEMENTED; }
714734
715735 }
1818 */
1919 #pragma once
2020
21 #include "kodi/libXBMC_addon.h"
22 #include "kodi/libXBMC_pvr.h"
23 #include "kodi/libKODI_guilib.h"
24 #include "platform/util/StdString.h"
21 #include "libXBMC_addon.h"
22 #include "libXBMC_pvr.h"
23 #include "libKODI_guilib.h"
24 #include "p8-platform/util/StdString.h"
2525
2626 #include "clientversion.h"
2727
3737 extern bool g_bEnableMultiResume;
3838 extern ADDON::CHelper_libXBMC_addon *XBMC;
3939 extern CHelper_libXBMC_pvr *PVR;
40 extern CHelper_libKODI_guilib *GUI;
4140 extern CStdString g_strServerMAC;
4241 extern bool g_bWakeOnLAN;
4342 extern CStdString g_AddonDataCustom;
2020
2121 inline CStdString PVRWMC_GetClientVersion()
2222 {
23 return "0.6.9"; // ALSO CHANGE IN REV NUMBER in 'pvr.wmc/addon.xml.in'
23 return "1.3.0"; // ALSO CHANGE IN REV NUMBER in 'pvr.wmc/addon.xml.in'
2424 }
1717 *
1818 */
1919
20 #include "kodi/util/XMLUtils.h"
20 #include "util/XMLUtils.h"
2121 #include "pvr2wmc.h"
2222 #include "utilities.h"
23 #include "platform/util/timeutils.h"
23 #include "p8-platform/util/timeutils.h"
2424
2525 #include <memory>
2626
2727 using namespace std;
2828 using namespace ADDON;
29 using namespace PLATFORM;
29 using namespace P8PLATFORM;
3030
3131 #define null NULL
3232
3737
3838 int64_t _lastRecordingUpdateTime; // the time of the last recording display update
3939
40 int _buffTimesCnt; // filter how often we do buffer status reads
41 int _buffTimeFILTER;
4042
4143 Pvr2Wmc::Pvr2Wmc(void)
4244 {
10691071 }
10701072
10711073 // check time since last time Recordings were updated, update if it has been awhile
1072 if ( _lastRecordingUpdateTime != 0 && PLATFORM::GetTimeMs() > _lastRecordingUpdateTime + 120000)
1074 if ( _lastRecordingUpdateTime != 0 && P8PLATFORM::GetTimeMs() > _lastRecordingUpdateTime + 120000)
10731075 {
10741076 PVR->TriggerRecordingUpdate();
10751077 }
11411143 xRec.iEpgEventId = atoi(v[18].c_str());
11421144 }
11431145
1146 // Kodi PVR API 5.0.0 adds EPG ID field
1147 if (v.size() > 18)
1148 {
1149 xRec.iChannelUid = atoi(v[17].c_str());
1150 }
1151 else
1152 {
1153 xRec.iChannelUid = PVR_CHANNEL_INVALID_UID;
1154 }
1155
1156 /* TODO: PVR API 5.1.0: Implement this */
1157 xRec.channelType = PVR_RECORDING_CHANNEL_TYPE_UNKNOWN;
1158
1159 // fix for advocate99 bug: new recordings won't play until kodi file cache gets a refresh.
1160 // If a recording path is given, but is not in the Kodi cache, use the trick below to force refresh kodi cache.
1161 // Does nothing if swmc doesn't return a path to the recording
1162 if (strlen(xRec.strStreamURL) > 0 && !XBMC->FileExists(xRec.strStreamURL, true/*inCache*/)) // path str exists, but rec is not in Kodi cache
1163 {
1164 CStdString dummyFile = xRec.strStreamURL;
1165 dummyFile += "_new_rec_fix.deleteMe";
1166 if (XBMC->CreateDirectory(dummyFile)) // create a dummy folder
1167 XBMC->RemoveDirectory(dummyFile); // delete the dummy folder if it was created
1168
1169 // check to see if fix worked
1170 if (XBMC->FileExists(xRec.strStreamURL, true))
1171 XBMC->Log(LOG_DEBUG, "recording cache fix for '%s' succeeded", xRec.strStreamURL);
1172 else
1173 XBMC->Log(LOG_DEBUG, "fix for recording cache bug failed for '%s'", xRec.strStreamURL);
1174 }
1175
11441176 PVR->TransferRecordingEntry(handle, &xRec);
11451177 }
11461178
1147 _lastRecordingUpdateTime = PLATFORM::GetTimeMs();
1179 _lastRecordingUpdateTime = P8PLATFORM::GetTimeMs();
11481180
11491181 return PVR_ERROR_NO_ERROR;
11501182 }
12591291
12601292 _lostStream = true; // init
12611293 _readCnt = 0;
1294 int _buffTimesCnt = 0;
1295 int _buffTimeFILTER = 0;
12621296
12631297 CloseLiveStream(false); // close current stream (if any)
12641298
15651599
15661600 _lostStream = true; // init
15671601 _readCnt = 0;
1602 int _buffTimesCnt = 0;
1603 int _buffTimeFILTER = 0;
15681604
15691605 // request an active recording stream
15701606 CStdString request;
16721708 snprintf(cachedSignalStatus.strServiceName, sizeof(cachedSignalStatus.strServiceName), "%s", results[3].c_str());
16731709 snprintf(cachedSignalStatus.strMuxName, sizeof(cachedSignalStatus.strMuxName), "%s", results[4].c_str());
16741710 cachedSignalStatus.iSignal = (int)(atoi(results[5]) * 655.35);
1675 cachedSignalStatus.dVideoBitrate = atof(results[6]);
1676 cachedSignalStatus.dAudioBitrate = atof(results[7]);
16771711
16781712 bool error = atoi(results[8]) == 1;
16791713 if (error)
16891723 signalStatus = cachedSignalStatus;
16901724 return PVR_ERROR_NO_ERROR;
16911725 }
1726
1727
1728 bool Pvr2Wmc::IsTimeShifting()
1729 {
1730 if (_streamFile) // ?not sure if this should be false if playtime is at buffer end)
1731 return true;
1732 else
1733 return false;
1734 }
1735
1736 time_t _buffStart;
1737 time_t _buffEnd;
1738 time_t _buffCurrent;
1739
1740 // get current playing time from swmc remux, this method also recieves buffer start and buffer end
1741 // to minimize traffic to swmc, since Kodi calls this like crazy, the calls are filtered. The size
1742 // of the filter is passed in from swmc
1743 time_t Pvr2Wmc::GetPlayingTime()
1744 {
1745 if (_streamFile && _buffTimesCnt >= _buffTimeFILTER) // filter so we don't query swmc too much
1746 {
1747 _buffTimesCnt = 0;
1748 int64_t filePos = XBMC->GetFilePosition(_streamFile); // get the current file pos so we can convert to play time
1749 CStdString request;
1750 request.Format("GetBufferTimes|%llu", filePos);
1751 vector<CStdString> results = _socketClient.GetVector(request, false); // have swmc convert file pos to current play time
1752
1753 if (results.size() > 3)
1754 {
1755 _buffStart = atol(results[0]);
1756 _buffEnd = atol(results[1]);
1757 _buffCurrent = atol(results[2]);
1758 _buffTimeFILTER = atoi(results[3]); // get filter value from swmc
1759 }
1760 }
1761 _buffTimesCnt++;
1762 return _buffCurrent;
1763 }
1764
1765 time_t Pvr2Wmc::GetBufferTimeStart()
1766 {
1767 if (_streamFile)
1768 {
1769 return _buffStart;
1770 }
1771 return 0;
1772 }
1773
1774 time_t Pvr2Wmc::GetBufferTimeEnd()
1775 {
1776 if (_streamFile)
1777 {
1778 return _buffEnd;
1779 }
1780 return 0;
1781 }
1919 #pragma once
2020
2121 #include <vector>
22 #include "platform/util/StdString.h"
22 #include "p8-platform/util/StdString.h"
2323 #include "client.h"
2424 #include "Socket.h"
2525
125125 long long LengthLiveStream(void);
126126 long long ActualFileSize(int count);
127127 PVR_ERROR SignalStatus(PVR_SIGNAL_STATUS &signalStatus);
128
128
129 // time shifting
130 bool IsTimeShifting();
131 time_t GetPlayingTime();
132 time_t GetBufferTimeStart();
133 time_t GetBufferTimeEnd();
134
129135 bool CheckErrorOnServer();
130136 void TriggerUpdates(std::vector<CStdString> results);
131137 void ExtractDriveSpace(std::vector<CStdString> results);
1717 *
1818 */
1919
20 #include "platform/util/StdString.h"
21 #include "kodi/util/XMLUtils.h"
20 #include "p8-platform/util/StdString.h"
21 #include "util/XMLUtils.h"
2222 #include "utilities.h"
2323
2424 #include "client.h"
8080 }
8181 }
8282
83 // return the directory from the input file path
84 CStdString GetDirectoryPath(CStdString const &path)
85 {
86 size_t found = path.find_last_of("/\\");
87 if (found != CStdString::npos)
88 return path.substr(0, found);
89 else
90 return path;
91 }
92
8393 bool ReadFileContents(CStdString const &strFileName, CStdString &strContent)
8494 {
8595 void* fileHandle = XBMC->OpenFile(strFileName.c_str(), 0);
2828
2929 bool EndsWith(CStdString const &fullString, CStdString const &ending);
3030 bool StartsWith(CStdString const &fullString, CStdString const &starting);
31 CStdString GetDirectoryPath(CStdString const &path);
3132 bool ReadFileContents(CStdString const &strFileName, CStdString &strResult);
3233 bool WriteFileContents(CStdString const &strFileName, CStdString &strContent);