htsmsg_t * dvr_autorec_entry_class_weekdays_get(uint32_t weekdays);
htsmsg_t * dvr_autorec_entry_class_weekdays_list (void *o, const char *list);
char * dvr_autorec_entry_class_weekdays_rend(uint32_t weekdays, const char *lang);
+const char *dvr_entry_class_image_url_get(const dvr_entry_t *o);
void dvr_autorec_check_event(epg_broadcast_t *e);
void dvr_autorec_check_brand(epg_brand_t *b);
}
static const void *
-dvr_entry_class_image_url_get(void *o)
+dvr_entry_class_image_url_get_as_property(void *o)
{
dvr_entry_t *de = (dvr_entry_t *)o;
if (de->de_image) {
return &prop_sbuf_ptr;
}
+const char *
+dvr_entry_class_image_url_get(const dvr_entry_t *o)
+{
+ const void *image = dvr_entry_class_image_url_get_as_property((void*)o);
+ if (!image) return NULL;
+ const char *image_str = *(const char**)image;
+ if (!image_str) return NULL;
+ if (!*image_str) return NULL;
+ return image_str;
+}
+
+
+
static const void *
dvr_entry_class_duplicate_get(void *o)
{
.id = "image", /* Name chosen to be compatible with api_epg */
.name = N_("Episode image"),
.desc = N_("Episode image."),
- .get = dvr_entry_class_image_url_get,
+ .get = dvr_entry_class_image_url_get_as_property,
.off = offsetof(dvr_entry_t, de_image),
.opts = PO_HIDDEN,
},
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);
+ /* We use the accessor since it will also try to get
+ * an image from current EPG if recording does not have
+ * an associated image.
+ */
+ const char *image = dvr_entry_class_image_url_get(de);
+ if(image && *image)
+ htsmsg_add_str(out, "image", image);
if (de->de_copyright_year)
htsmsg_add_u32(out, "copyrightYear", de->de_copyright_year);