]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
ui: Persist image to dvr/log and send to ui. (#4685).
authorE.Smith <31170571+azlm8t@users.noreply.github.com>
Tue, 31 Oct 2017 10:40:25 +0000 (10:40 +0000)
committerJaroslav Kysela <perex@perex.cz>
Wed, 8 Nov 2017 16:54:53 +0000 (17:54 +0100)
Previously it was only available for upcoming recordings
but now we persist it to the dvr/log so it can be sent
to clients and displayed on recorded programmes.

Issue: #4685

src/dvr/dvr.h
src/dvr/dvr_db.c
src/htsp_server.c

index efbf852fdaf10e7da1d9a9a26f8890bb1bc3d803..6120d5a1544a2da9b97bbcf15bf3a5586c254e68 100644 (file)
@@ -206,6 +206,7 @@ typedef struct dvr_entry {
   char *de_creator;
   char *de_comment;
   char *de_uri;                 /* Programme unique ID */
+  char *de_image;               /* Programme Image */
   htsmsg_t *de_files; /* List of all used files */
   char *de_directory; /* Can be set for autorec entries, will override any 
                          directory setting from the configuration */
index 080dcda158bde2ca507ec093d575ce048a0565bb..d4a3f5569b04d74b719202689878bbb8c1a51dcd 100644 (file)
@@ -995,6 +995,8 @@ dvr_entry_create_(int enabled, const char *config_uuid, epg_broadcast_t *e,
       htsmsg_add_u32(conf, "copyright_year", e->episode->copyright_year);
     if (e->episode && e->episode->uri)
       htsmsg_add_str(conf, "uri", e->episode->uri);
+    if (e->episode && e->episode->image)
+      htsmsg_add_str(conf, "image", e->episode->image);
   } else if (title) {
     l = lang_str_create();
     lang_str_add(l, title, lang, 0);
@@ -3298,6 +3300,11 @@ static const void *
 dvr_entry_class_image_url_get(void *o)
 {
   dvr_entry_t *de = (dvr_entry_t *)o;
+  if (de->de_image) {
+    prop_ptr = de->de_image;
+    return &prop_ptr;
+  }
+
   static const char *s = "";
   if (!de->de_bcast || !de->de_bcast->episode || !de->de_bcast->episode->image)
       return &s;
@@ -3485,7 +3492,8 @@ const idclass_t dvr_entry_class = {
       .name     = N_("Episode image"),
       .desc     = N_("Episode image."),
       .get      = dvr_entry_class_image_url_get,
-      .opts     = PO_HIDDEN | PO_RDONLY | PO_NOSAVE | PO_NOUI,
+      .off      = offsetof(dvr_entry_t, de_image),
+      .opts     = PO_HIDDEN,
     },
     {
       .type     = PT_LANGSTR,
index 81aba2fdf450ef57236af615885cf0b7c7fdbdee..8c9085c1eaa18089b2080a8e212a3c3dae4df8c3 100644 (file)
@@ -1003,6 +1003,8 @@ htsp_build_dvrentry(htsp_connection_t *htsp, dvr_entry_t *de, const char *method
       htsmsg_add_str(out, "creator", de->de_creator);
     if(de->de_comment)
       htsmsg_add_str(out, "comment", de->de_comment);
+    if(de->de_image && *de->de_image)
+      htsmsg_add_str(out, "image", de->de_image);
     if (de->de_copyright_year)
       htsmsg_add_u32(out, "copyrightYear", de->de_copyright_year);