From b4793574425eb69b2d8b060b910b6f5b8595c59f Mon Sep 17 00:00:00 2001 From: phunkyfish Date: Sat, 9 Oct 2021 15:57:42 +0100 Subject: [PATCH 1/4] Add add-on icon --- pvr.demo/addon.xml.in | 3 +++ pvr.demo/icon.png | Bin 0 -> 78412 bytes 2 files changed, 3 insertions(+) create mode 100644 pvr.demo/icon.png diff --git a/pvr.demo/addon.xml.in b/pvr.demo/addon.xml.in index fd71e33..fefc7d5 100644 --- a/pvr.demo/addon.xml.in +++ b/pvr.demo/addon.xml.in @@ -13,6 +13,9 @@ GPL-2.0-or-later https://github.com/kodi-pvr/pvr.demo https://forum.kodi.tv/forumdisplay.php?fid=173 + + icon.png + Demo PVR Kliënt የ PVR ደንበኛ ናሙና Дэманстрацыя кліента PVR diff --git a/pvr.demo/icon.png b/pvr.demo/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..64f49438a2a4d048864ed424f68834c84cd3904d GIT binary patch literal 78412 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 literal 0 HcmV?d00001 From b2ef67853734378e3ff421198cd0c3ae3698c6cc Mon Sep 17 00:00:00 2001 From: phunkyfish Date: Thu, 7 Oct 2021 20:27:29 +0100 Subject: [PATCH 2/4] Add PVR Demo Provider icons --- pvr.demo/data/p01.png | Bin 0 -> 4170 bytes pvr.demo/data/p02.png | Bin 0 -> 5069 bytes pvr.demo/data/p03.png | Bin 0 -> 5421 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 pvr.demo/data/p01.png create mode 100644 pvr.demo/data/p02.png create mode 100644 pvr.demo/data/p03.png diff --git a/pvr.demo/data/p01.png b/pvr.demo/data/p01.png new file mode 100644 index 0000000000000000000000000000000000000000..64d549abb8c24320dd75b23203ee9284e4614e7e GIT binary patch literal 4170 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

vt~5c3feoiTE@3`Gzl}AG)dv=SZ_F-@M(I4R6v< z>@k!Ey>(3u;|OY-Pq28SWbzmw+m_w@+9sQRw-NVOUVQs|?>$dA<(y~$Ww+7(JlSA> z2I{NFIk}g&SCre*VfwoV(y5$;za{Px7=v7(;oC%f<%W4<$%o-*{`km&DV=G=Hf@8G zO_CRWFI=A3^_=sUV1#|Fe(7|+7#=tm_u2JyQti(EZt1}{XLgCQNhlE{P%awpqqDw+l{?VDMsnG@Z%SUQ`WjwP zSU~!v$h)M4=mjl)|}20cIcbIm6y)!ZV#^7xuIeA&Q-B@SHAE$^!B2MZp=rOBVq zkBn`qLJabGk(QbaS|7MnY?yvGb2Ol< zqq<8<3T$n0C|s}8G}2!srV4TpqRf!{?THqpBna!v9^!N@9;(w2=*3n`gOPYXT9BaK zCglp8i}yUf=YGY!fW+wMv60h-&Y5GArL71)LwzeF7y%P)ffcxU&XiKRW;(eoIb(RG zlL%7Txv>G!AADgH0>H8*3Gr=WQtF0h@fJ8&eFXRXpmrhKf4)6KkFjjMQ4k889Wiqk zV9|Xv<5}F)_a$QqTJwqNDho9fj%R2#@1t2<@=pLQ`dYG+kNM|@-bt`o|E!;>ZcQ=s zJ3arD3ukqjM(659i-gKuL4kIQyk+SltmmR^abs0`9U0N&5| zfX){D3UX@r#9t`leta|J=+wBm#$8`Iq^k>{a>Cb1cb7;(chKP~$jynrmPJ^~ zOjwFV*vCv*MMe6j@~C~fk7zR#GJ{cca&uFC6vN7Bj{S!^Szl-87gCBL?3SlHKB*jY zfCE$|@3Ej<>vyyzshj>@O_hO_ue-IP37G#)2K@(#D6Om=VTu{w5ehj^YpOg5uV(l% zF#?$is1;~@WJ{vG$t!pE4-3|OQFlUrE*J;&RAFi6#F2|19~oc%dXyb<;Hpss_Q+pn$fzu3DuEJmOyw Cn$@QO literal 0 HcmV?d00001 From 14126929bf47a9306bfe23cff6c84480bdd1f8c9 Mon Sep 17 00:00:00 2001 From: phunkyfish Date: Sat, 9 Oct 2021 15:23:58 +0100 Subject: [PATCH 3/4] Support Providers --- README.md | 4 +- pvr.demo/PVRDemoAddonSettings.xml | 121 +++++++++++++++++++++++++----- pvr.demo/README.md | 35 ++++++--- src/PVRDemo.cpp | 111 ++++++++++++++++++++++++++- src/PVRDemo.h | 19 +++++ 5 files changed, 257 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 446de22..eaac273 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,9 @@ [![Coverity Scan Build Status](https://scan.coverity.com/projects/5120/badge.svg)](https://scan.coverity.com/projects/5120) # Demo PVR -Demo PVR client addon for [Kodi](https://kodi.tv) +Demo PVR client addon for [Kodi](https://kodi.tv). The add-on is aimed at both PVR add-on devs and at XBMC skin developers. + +For more information on the relationship of the data and the UI see [here](pvr.demo/README.md) ## Build instructions diff --git a/pvr.demo/PVRDemoAddonSettings.xml b/pvr.demo/PVRDemoAddonSettings.xml index 8aa34e4..94bac69 100644 --- a/pvr.demo/PVRDemoAddonSettings.xml +++ b/pvr.demo/PVRDemoAddonSettings.xml @@ -1,4 +1,28 @@ + + + + Demo Provider 1 + satellite + data/p01.png + UK,IE + en_GB,en_IE + + + Demo Provider 2 + satellite + data/p02.png + UK,IE + en_GB,en_IE + + + Demo Provider 3 + aerial + data/p03.png + IE + en_GB,en_IE + + @@ -9,6 +33,7 @@ data/01.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 1 + 1 Demo TV Channel 2 @@ -18,6 +43,7 @@ data/02.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 1 + 1 Demo TV Channel 3 @@ -27,6 +53,7 @@ data/03.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 0 + 1 Demo TV Channel 4 @@ -45,6 +72,7 @@ data/05.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 0 + 2 Demo TV Channel 6 @@ -54,6 +82,7 @@ data/06.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 1 + 2 Demo TV Channel 7 @@ -63,6 +92,7 @@ data/07.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 1 + 2 Demo TV Channel 8 @@ -81,6 +111,7 @@ data/09.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 0 + 3 Demo TV Channel 10 @@ -90,6 +121,7 @@ data/10.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 0 + 3 Demo TV Channel 11 @@ -99,6 +131,7 @@ data/11.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 1 + 3 @@ -110,6 +143,7 @@ data/01.png 0 + 1 Demo Radio Channel 2 @@ -119,6 +153,7 @@ data/02.png 0 + 1 Demo Radio Channel 3 @@ -128,6 +163,7 @@ data/03.png 0 + 1 Demo Radio Channel 4 @@ -146,6 +182,7 @@ data/05.png 0 + 2 Demo Radio Channel 6 @@ -155,6 +192,7 @@ data/06.png 0 + 2 Demo Radio Channel 7 @@ -164,6 +202,7 @@ data/07.png 0 + 2 Demo Radio Channel 8 @@ -182,6 +221,7 @@ data/09.png 0 + 3 Demo Radio Channel 10 @@ -191,6 +231,7 @@ data/10.png 0 + 3 @@ -200,7 +241,7 @@ 1 1 0 - + data/11.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 @@ -209,7 +250,7 @@ 1 2 0 - + data/11.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 @@ -218,7 +259,7 @@ 1 3 0 - + data/11.png https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 @@ -557,6 +598,8 @@ 0 2 1 + 1 + 1 Demo TV Recording entry 2 @@ -572,11 +615,13 @@ 7500 0 3 + 2 + 2 Demo TV Recording entry 3 https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 - /Directory1/SubDirectory1/ + /Directory1/SubDirectory2/ Demo TV Channel 3 Demo TV Recording 3 Episode Name Lorem ipsum dolor sit amet, consectetur adipiscing elit. @@ -586,6 +631,8 @@ 7500 0 + 3 + 3 Demo TV Recording entry 4 @@ -599,12 +646,14 @@ 7500 0 + 4 + 1 Demo TV Recording entry 5 https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 - /Directory1/SubDirectory2/ - Demo TV Channel 5 + /Directory2/SubDirectory1/ + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. 10 @@ -612,12 +661,13 @@ 7500 0 + 2 Demo TV Recording entry 6 https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 /Directory2/SubDirectory1/ - Demo TV Channel 6 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. 10 @@ -625,12 +675,13 @@ 7500 0 + 3 Demo TV Recording entry 7 https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 /Directory2/SubDirectory1/ - Demo TV Channel 7 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. 10 @@ -638,11 +689,12 @@ 7500 0 + 1 Demo TV Recording entry 8 https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 - /Directory2/SubDirectory2/ + /Directory3/ Demo TV Channel 8 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. @@ -655,7 +707,7 @@ Demo TV Recording entry 9 https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 - /Directory2/SubDirectory2/ + /Directory3/ Demo TV Channel 9 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. @@ -668,7 +720,7 @@ Demo TV Recording entry 10 https://mirrors.kodi.tv/demo-files/BBB/bbb_sunflower_1080p_30fps_normal.mp4 - /Directory2/ + /Directory3/ Demo TV Channel 10 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. @@ -691,6 +743,8 @@ 7200 1 + 1 + 1 Demo Radio Recording entry 2 @@ -704,11 +758,13 @@ 7500 1 + 2 + 2 Demo Radio Recording entry 3 - /Directory1/SubDirectory1/ + /Directory1/SubDirectory2/ Demo Radio Channel 3 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. @@ -717,6 +773,8 @@ 7500 1 + 3 + 3 Demo Radio Recording entry 4 @@ -730,12 +788,14 @@ 7500 1 + 4 + 1 Demo Radio Recording entry 5 - /Directory1/SubDirectory2/ - Demo Radio Channel 5 + /Directory2/SubDirectory1/ + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. 10 @@ -743,12 +803,13 @@ 7500 1 + 2 Demo Radio Recording entry 6 /Directory2/SubDirectory1/ - Demo Radio Channel 6 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. 10 @@ -756,12 +817,13 @@ 7500 1 + 3 Demo Radio Recording entry 7 /Directory2/SubDirectory1/ - Demo Radio Channel 7 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. 10 @@ -769,11 +831,12 @@ 7500 1 + 1 Demo Radio Recording entry 8 - /Directory2/SubDirectory2/ + /Directory3/ Demo Radio Channel 8 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. @@ -786,7 +849,7 @@ Demo Radio Recording entry 9 - /Directory2/SubDirectory2/ + /Directory3/ Demo Radio Channel 9 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. @@ -799,7 +862,7 @@ Demo Radio Recording entry 10 - /Directory2/ + /Directory3/ Demo Radio Channel 10 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam cursus consectetur ipsum, eu tincidunt dui aliquam ac. Sed scelerisque, augue eu lacinia ultrices, libero ante ullamcorper augue, vel malesuada justo risus ac nulla. Quisque ac libero libero. Sed tincidunt, orci eu condimentum laoreet, felis odio mattis est, et lacinia metus enim in leo. Fusce faucibus tristique risus in varius. Etiam sagittis venenatis ligula nec rutrum. Etiam gravida dictum hendrerit. Sed sodales felis in sapien rutrum non malesuada nisi lobortis. Mauris iaculis ante odio. Nunc gravida erat convallis purus dignissim et ultricies orci dapibus. Aliquam erat volutpat. Vestibulum mi felis, malesuada ac tincidunt sit amet, pulvinar nec dolor. Pellentesque vehicula est vulputate mi adipiscing euismod. Donec ac mauris nulla. Nullam suscipit felis eu quam sodales ac bibendum nisi interdum. Curabitur non lectus a ante venenatis semper eget id justo. Ut facilisis, ligula pretium dictum congue, lacus dolor commodo nibh, sit amet sodales sed. @@ -809,7 +872,7 @@ 7500 1 - + @@ -827,6 +890,7 @@ 7200 0 + 1 Demo TV Recording entry 12 @@ -842,6 +906,7 @@ 7500 0 + 1 Demo TV Recording entry 13 @@ -856,6 +921,7 @@ 7500 0 + 1 Demo TV Recording entry 14 @@ -882,6 +948,7 @@ 7500 0 + 2 Demo TV Recording entry 16 @@ -895,6 +962,7 @@ 7500 0 + 2 Demo TV Recording entry 17 @@ -908,6 +976,7 @@ 7500 0 + 2 Demo TV Recording entry 18 @@ -934,6 +1003,7 @@ 7500 0 + 3 Demo TV Recording entry 20 @@ -947,6 +1017,7 @@ 7500 0 + 3 @@ -961,6 +1032,7 @@ 7200 1 + 1 Demo Radio Recording entry 12 @@ -974,6 +1046,7 @@ 7500 1 + 1 Demo Radio Recording entry 13 @@ -987,6 +1060,7 @@ 7500 1 + 1 Demo Radio Recording entry 14 @@ -1000,6 +1074,7 @@ 7500 1 + 1 Demo Radio Recording entry 15 @@ -1013,6 +1088,7 @@ 7500 1 + 2 Demo Radio Recording entry 16 @@ -1026,6 +1102,7 @@ 7500 1 + 2 Demo Radio Recording entry 17 @@ -1039,6 +1116,7 @@ 7500 1 + 2 Demo Radio Recording entry 18 @@ -1052,6 +1130,7 @@ 7500 1 + 2 Demo Radio Recording entry 19 @@ -1065,6 +1144,7 @@ 7500 1 + 3 Demo Radio Recording entry 20 @@ -1078,6 +1158,7 @@ 7500 1 + 3 diff --git a/pvr.demo/README.md b/pvr.demo/README.md index ddfcaa2..0a796d8 100644 --- a/pvr.demo/README.md +++ b/pvr.demo/README.md @@ -1,13 +1,28 @@ -pvr.demo.extras -=============== -Dummy data and files to be used with the PVR Demo Add-on. This is aimed at XBMC skin developers. +# PVR Demo Data +Dummy data and files to be used with the PVR Demo Add-on. -This package was originally put together by Jezz_X. I just updated paths to keep it working in XBMC 13 and added the following: +## Icons +There are 11 icons used for the channels. The same icons are used for TV and Radio. -- dummy recordings -- replaced the first tv channel (stream not working anymore) -- added more of the available genre colors in the epg -- added genre colors doc file +## PVR Channel Data types -### Usage -Extract the contents of this file and copy it over into the pvr demo addons install directory (PVRDemoAddonSettings.xml needs to be overwritten). After that go into settings/livetv/general and select "Reset the PVR database" to get the new info. +The relationship between Providers, Channels, Channel Groups and Recordings are as follow: +- *Providers*: + - Are independent of TV or Radio. A PVR add-on can create custom providers, it is also a provider itself. +- *Channels*: + - Can specify a provider ID. If one is not specified, its provider will default to the PVR add-on as the provider +- *Channel Groups*: + - can contain either TV channels or Radio channels +- *Recordings*: + - Can specify a channel ID and/or a provider ID. The fallback order is `Channel -> Custom Provider -> Addon provider`. + +### Channels and Providers behaviour for Recordings + +#### /Directory1/ +The first four TV and Radio recordings (1-4) have a channel ID set as per PVR API 5.0.0. For these recordings the channel name and icon should be visible when inspecting the recordings in the UI. They also have provider IDs set, but as this is a fallback used in the absence of Channel IDs, the provider will not be visible. + +#### /Directory2/ +The next 3 TV and Radio recordings (5-7) have a provider ID set as per PVR API 8.0.0. Neither channel name or channel ID are set. For these recordings the provider name and icon (custom provider used) should be visible when inspecting the recordings in the UI. + +#### /Directory3/ +The next 3 TV and Radio recordings (8-10) don't have a channel ID or a provider ID set, but do have channel name set. For these recordings the PVR add-on name and icon (add-on provider used) should be visible when inspecting the recordings in the UI. \ No newline at end of file diff --git a/src/PVRDemo.cpp b/src/PVRDemo.cpp index 8d55aa9..00ed228 100644 --- a/src/PVRDemo.cpp +++ b/src/PVRDemo.cpp @@ -51,6 +51,7 @@ PVR_ERROR CPVRDemo::GetCapabilities(kodi::addon::PVRCapabilities& capabilities) capabilities.SetSupportsRecordingsRename(false); capabilities.SetSupportsRecordingsLifetimeChange(false); capabilities.SetSupportsDescrambleInfo(false); + capabilities.SetSupportsProviders(true); return PVR_ERROR_NO_ERROR; } @@ -162,6 +163,32 @@ PVR_ERROR CPVRDemo::GetEPGTagStreamProperties( return PVR_ERROR_NO_ERROR; } +PVR_ERROR CPVRDemo::GetProvidersAmount(int& amount) +{ + amount = m_providers.size(); + + return PVR_ERROR_NO_ERROR; +} + +PVR_ERROR CPVRDemo::GetProviders(kodi::addon::PVRProvidersResultSet& results) +{ + for (const auto& provider : m_providers) + { + kodi::addon::PVRProvider kodiProvider; + + kodiProvider.SetUniqueId(provider.iProviderId); + kodiProvider.SetName(provider.strProviderName); + kodiProvider.SetType(provider.providerType); + kodiProvider.SetIconPath(provider.strIconPath); + kodiProvider.SetCountries(provider.countries); + kodiProvider.SetLanguages(provider.languages); + + results.Add(kodiProvider); + } + + return PVR_ERROR_NO_ERROR; +} + PVR_ERROR CPVRDemo::GetChannelsAmount(int& amount) { amount = m_channels.size(); @@ -186,6 +213,9 @@ PVR_ERROR CPVRDemo::GetChannels(bool bRadio, kodi::addon::PVRChannelsResultSet& kodiChannel.SetIsHidden(false); kodiChannel.SetHasArchive(channel.bArchive); + /* PVR API 8.0.0 */ + kodiChannel.SetClientProviderUid(channel.iProviderId); + results.Add(kodiChannel); } } @@ -293,7 +323,10 @@ PVR_ERROR CPVRDemo::GetRecordings(bool deleted, kodi::addon::PVRRecordingsResult kodiRecording.SetDirectory(recording.strDirectory); /* TODO: PVR API 5.0.0: Implement this */ - kodiRecording.SetChannelUid(PVR_CHANNEL_INVALID_UID); + kodiRecording.SetChannelUid(recording.iChannelId); + + /* PVR API 8.0.0 */ + kodiRecording.SetClientProviderUid(recording.iProviderId); results.Add(kodiRecording); } @@ -415,9 +448,23 @@ bool CPVRDemo::LoadDemoData(void) return false; } + /* load providers */ + int iUniqueProviderId = 0; + XMLElement* pElement = pRootElement->FirstChildElement("providers"); + if (pElement) + { + for (const XMLElement* pProviderNode = pElement->FirstChildElement(); pProviderNode != nullptr; + pProviderNode = pProviderNode->NextSiblingElement()) + { + PVRDemoProvider provider; + if (ScanXMLProviderData(pProviderNode, ++iUniqueProviderId, provider)) + m_providers.emplace_back(provider); + } + } + /* load channels */ int iUniqueChannelId = 0; - XMLElement* pElement = pRootElement->FirstChildElement("channels"); + pElement = pRootElement->FirstChildElement("channels"); if (pElement) { for (const XMLElement* pChannelNode = pElement->FirstChildElement(); pChannelNode != nullptr; @@ -532,6 +579,54 @@ std::string CPVRDemo::GetRecordingURL(const kodi::addon::PVRRecording& recording return ""; } +bool CPVRDemo::ScanXMLProviderData(const XMLNode* pProviderNode, + int iUniqueProviderId, + PVRDemoProvider& provider) +{ + std::string strTmp; + provider.iProviderId = iUniqueProviderId; + + /* provider name */ + if (!XMLGetString(pProviderNode, "name", strTmp)) + return false; + provider.strProviderName = strTmp; + + /* provider type */ + if (!XMLGetString(pProviderNode, "type", strTmp)) + return false; + kodi::tools::StringUtils::ToLower(strTmp); + if (strTmp == "addon") + provider.providerType = PVR_PROVIDER_TYPE_ADDON; + else if (strTmp == "satellite") + provider.providerType = PVR_PROVIDER_TYPE_SATELLITE; + else if (strTmp == "cable") + provider.providerType = PVR_PROVIDER_TYPE_CABLE; + else if (strTmp == "aerial") + provider.providerType = PVR_PROVIDER_TYPE_AERIAL; + else if (strTmp == "iptv") + provider.providerType = PVR_PROVIDER_TYPE_IPTV; + else + provider.providerType = PVR_PROVIDER_TYPE_UNKNOWN; + + /* provider icon path */ + if (!XMLGetString(pProviderNode, "iconPath", strTmp)) + provider.strIconPath = m_strDefaultIcon; + else + provider.strIconPath = ClientPath() + strTmp; + + /* provider countries */ + if (!XMLGetString(pProviderNode, "countries", strTmp)) + return false; + provider.countries = kodi::tools::StringUtils::Split(strTmp, PROVIDER_STRING_TOKEN_SEPARATOR); + + /* provider languages */ + if (!XMLGetString(pProviderNode, "languages", strTmp)) + return false; + provider.languages = kodi::tools::StringUtils::Split(strTmp, PROVIDER_STRING_TOKEN_SEPARATOR); + + return true; +} + bool CPVRDemo::ScanXMLChannelData(const XMLNode* pChannelNode, int iUniqueChannelId, PVRDemoChannel& channel) @@ -573,6 +668,10 @@ bool CPVRDemo::ScanXMLChannelData(const XMLNode* pChannelNode, XMLGetBoolean(pChannelNode, "archive", channel.bArchive); + /* provider id */ + channel.iProviderId = PVR_PROVIDER_INVALID_UID; + XMLGetInt(pChannelNode, "provider", channel.iProviderId); + return true; } @@ -751,6 +850,14 @@ bool CPVRDemo::ScanXMLRecordingData(const XMLNode* pRecordingNode, } } + /* channel id */ + recording.iChannelId = PVR_CHANNEL_INVALID_UID; + XMLGetInt(pRecordingNode, "channel", recording.iChannelId); + + /* provider id */ + recording.iProviderId = PVR_PROVIDER_INVALID_UID; + XMLGetInt(pRecordingNode, "provider", recording.iProviderId); + return true; } diff --git a/src/PVRDemo.h b/src/PVRDemo.h index ad20cc6..6076470 100644 --- a/src/PVRDemo.h +++ b/src/PVRDemo.h @@ -45,6 +45,7 @@ struct PVRDemoChannel std::string strIconPath; std::string strStreamURL; std::vector epg; + int iProviderId; }; struct PVRDemoRecording @@ -64,6 +65,8 @@ struct PVRDemoRecording std::string strEpisodeName; std::string strDirectory; time_t recordingTime; + int iChannelId; + int iProviderId; }; struct PVRDemoTimer @@ -85,6 +88,16 @@ struct PVRDemoChannelGroup std::vector members; }; +struct PVRDemoProvider +{ + int iProviderId; + std::string strProviderName; + PVR_PROVIDER_TYPE providerType; + std::string strIconPath; + std::vector countries; + std::vector languages; +}; + namespace tinyxml2 { class XMLNode; @@ -123,6 +136,8 @@ class ATTRIBUTE_HIDDEN CPVRDemo : public kodi::addon::CAddonBase, PVR_ERROR GetEPGTagStreamProperties( const kodi::addon::PVREPGTag& tag, std::vector& properties) override; + PVR_ERROR GetProvidersAmount(int& amount) override; + PVR_ERROR GetProviders(kodi::addon::PVRProvidersResultSet& results) override; PVR_ERROR GetChannelGroupsAmount(int& amount) override; PVR_ERROR GetChannelGroups(bool bRadio, kodi::addon::PVRChannelGroupsResultSet& results) override; PVR_ERROR GetChannelGroupMembers(const kodi::addon::PVRChannelGroup& group, @@ -150,6 +165,9 @@ class ATTRIBUTE_HIDDEN CPVRDemo : public kodi::addon::CAddonBase, private: PVR_ERROR CallMenuHook(const kodi::addon::PVRMenuhook& menuhook); + bool ScanXMLProviderData(const tinyxml2::XMLNode* pProviderNode, + int iUniqueProviderId, + PVRDemoProvider& provider); bool ScanXMLChannelData(const tinyxml2::XMLNode* pChannelNode, int iUniqueChannelId, PVRDemoChannel& channel); @@ -170,6 +188,7 @@ class ATTRIBUTE_HIDDEN CPVRDemo : public kodi::addon::CAddonBase, const std::string& strTag, bool& bBoolValue); + std::vector m_providers; std::vector m_groups; std::vector m_channels; std::vector m_recordings; From 0c64eb6104c500e160d23da3231f473868b412bf Mon Sep 17 00:00:00 2001 From: phunkyfish Date: Sat, 9 Oct 2021 15:41:47 +0100 Subject: [PATCH 4/4] changelog and version - v20.3.0 --- pvr.demo/addon.xml.in | 2 +- pvr.demo/changelog.txt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pvr.demo/addon.xml.in b/pvr.demo/addon.xml.in index fefc7d5..9e030dc 100644 --- a/pvr.demo/addon.xml.in +++ b/pvr.demo/addon.xml.in @@ -1,7 +1,7 @@ @ADDON_DEPENDS@ diff --git a/pvr.demo/changelog.txt b/pvr.demo/changelog.txt index 9aee0ed..a47e065 100644 --- a/pvr.demo/changelog.txt +++ b/pvr.demo/changelog.txt @@ -1,3 +1,8 @@ +v20.3.0 +- Add icon add-on +- Add icons for providers +- Add Support for PVR Providers + v20.2.0 - Kodi API to 8.0.0 - Add supports recordings delete capability