gtimer_t de_timer;
-
/**
* These meta fields will stay valid as long as reference count > 0
*/
dvr_prio_t de_pri;
epg_episode_t de_episode;
+ uint8_t de_content_type;
uint32_t de_dont_reschedule;
dvr_entry_t *dvr_entry_create(channel_t *ch, time_t start, time_t stop,
const char *title, const char *description,
const char *creator, dvr_autorec_entry_t *dae,
- epg_episode_t *ee, dvr_prio_t pri);
+ epg_episode_t *ee, uint8_t content_type,
+ dvr_prio_t pri);
void dvr_init(void);
dvr_entry_create(channel_t *ch, time_t start, time_t stop,
const char *title, const char *description,
const char *creator, dvr_autorec_entry_t *dae,
- epg_episode_t *ee, dvr_prio_t pri)
+ epg_episode_t *ee, uint8_t content_type, dvr_prio_t pri)
{
dvr_entry_t *de;
char tbuf[30];
tvh_str_set(&de->de_episode.ee_onscreen, ee->ee_onscreen);
}
+ de->de_content_type = content_type;
+
dvr_entry_link(de);
t = de->de_start - de->de_start_extra * 60;
return dvr_entry_create(e->e_channel, e->e_start, e->e_stop,
e->e_title, e->e_desc, creator, dae, &e->e_episode,
- pri);
+ e->e_content_type, pri);
}
if(!htsmsg_get_s32(c, "part", &d))
de->de_episode.ee_part = d;
+ de->de_content_type = htsmsg_get_u32_or_default(c, "contenttype", 0);
+
tvh_str_set(&de->de_episode.ee_onscreen, htsmsg_get_str(c, "episodename"));
dvr_entry_link(de);
if(de->de_episode.ee_onscreen)
htsmsg_add_str(m, "episodename", de->de_episode.ee_onscreen);
+ if(de->de_content_type)
+ htsmsg_add_u32(m, "contenttype", de->de_content_type);
+
hts_settings_save(m, "dvr/log/%d", de->de_id);
htsmsg_destroy(m);
}
mk_build_metadata(const dvr_entry_t *de)
{
htsbuf_queue_t *q = htsbuf_queue_alloc(0);
+ char datestr[64];
+ struct tm tm;
+
+ localtime_r(&de->de_start, &tm);
+
+ snprintf(datestr, sizeof(datestr),
+ "%04d-%02d-%02d %02d:%02d:%02d",
+ tm.tm_year + 1900,
+ tm.tm_mon + 1,
+ tm.tm_mday,
+ tm.tm_hour,
+ tm.tm_min,
+ tm.tm_sec);
+
+ addtag(q, build_tag_string("DATE_BROADCASTED", datestr, 0, NULL));
addtag(q, build_tag_string("ORIGINAL_MEDIA_TYPE", "TV", 0, NULL));
+ if(de->de_content_type)
+ addtag(q, build_tag_string("CONTENT_TYPE",
+ epg_content_group_get_name(de->de_content_type),
+ 0, NULL));
+
if(de->de_channel != NULL)
addtag(q, build_tag_string("TVCHANNEL", de->de_channel->ch_name, 0, NULL));
stop += 86400;
dvr_entry_create(ch, start, stop, title, NULL, hc->hc_representative,
- NULL, NULL, dvr_pri2val(pri));
+ NULL, NULL, 0, dvr_pri2val(pri));
out = htsmsg_create_map();
htsmsg_add_u32(out, "success", 1);