snprintf(output + strlen(output), outlen - strlen(output),
"%s", lang_str_get(de->de_title, NULL));
+ if(cfg->dvr_flags & DVR_EPISODE_BEFORE_DATE) {
+ if(cfg->dvr_flags & DVR_EPISODE_IN_TITLE) {
+ if(de->de_bcast && de->de_bcast->episode)
+ epg_episode_number_format(de->de_bcast->episode,
+ output + strlen(output),
+ outlen - strlen(output),
+ ".", "S%02d", NULL, "E%02d", NULL);
+ }
+ }
+
+ if(cfg->dvr_flags & DVR_SUBTITLE_IN_TITLE) {
+ if(de->de_bcast && de->de_bcast->episode && de->de_bcast->episode->subtitle)
+ snprintf(output + strlen(output), outlen - strlen(output),
+ ".%s", lang_str_get(de->de_bcast->episode->subtitle, NULL));
+ }
+
localtime_r(&de->de_start, &tm);
if(cfg->dvr_flags & DVR_DATE_IN_TITLE) {
snprintf(output + strlen(output), outlen - strlen(output), ".%s", buf);
}
- if(cfg->dvr_flags & DVR_EPISODE_IN_TITLE) {
- if(de->de_bcast && de->de_bcast->episode)
- epg_episode_number_format(de->de_bcast->episode,
- output + strlen(output),
- outlen - strlen(output),
- ".", "S%02d", NULL, "E%02d", NULL);
+ if(!(cfg->dvr_flags & DVR_EPISODE_BEFORE_DATE)) {
+ if(cfg->dvr_flags & DVR_EPISODE_IN_TITLE) {
+ if(de->de_bcast && de->de_bcast->episode)
+ epg_episode_number_format(de->de_bcast->episode,
+ output + strlen(output),
+ outlen - strlen(output),
+ ".", "S%02d", NULL, "E%02d", NULL);
+ }
}
if(cfg->dvr_flags & DVR_CLEAN_TITLE) {
if(!htsmsg_get_u32(m, "skip-commercials", &u32) && !u32)
cfg->dvr_flags &= ~DVR_SKIP_COMMERCIALS;
- tvh_str_set(&cfg->dvr_postproc, htsmsg_get_str(m, "postproc"));
+ if(!htsmsg_get_u32(m, "subtitle-in-title", &u32) && u32)
+ cfg->dvr_flags |= DVR_SUBTITLE_IN_TITLE;
+
+ if(!htsmsg_get_u32(m, "episode-before-date", &u32) && u32)
+ cfg->dvr_flags |= DVR_EPISODE_BEFORE_DATE;
+
+ tvh_str_set(&cfg->dvr_postproc, htsmsg_get_str(m, "postproc"));
}
htsmsg_destroy(l);
htsmsg_add_u32(m, "clean-title", !!(cfg->dvr_flags & DVR_CLEAN_TITLE));
htsmsg_add_u32(m, "tag-files", !!(cfg->dvr_flags & DVR_TAG_FILES));
htsmsg_add_u32(m, "skip-commercials", !!(cfg->dvr_flags & DVR_SKIP_COMMERCIALS));
+ htsmsg_add_u32(m, "subtitle-in-title", !!(cfg->dvr_flags & DVR_SUBTITLE_IN_TITLE));
+ htsmsg_add_u32(m, "episode-before-date", !!(cfg->dvr_flags & DVR_EPISODE_BEFORE_DATE));
if(cfg->dvr_postproc != NULL)
htsmsg_add_str(m, "postproc", cfg->dvr_postproc);
htsmsg_add_u32(r, "cleanTitle", !!(cfg->dvr_flags & DVR_CLEAN_TITLE));
htsmsg_add_u32(r, "tagFiles", !!(cfg->dvr_flags & DVR_TAG_FILES));
htsmsg_add_u32(r, "commSkip", !!(cfg->dvr_flags & DVR_SKIP_COMMERCIALS));
+ htsmsg_add_u32(r, "subtitleInTitle", !!(cfg->dvr_flags & DVR_SUBTITLE_IN_TITLE));
+ htsmsg_add_u32(r, "episodeBeforeDate", !!(cfg->dvr_flags & DVR_EPISODE_BEFORE_DATE));
out = json_single_record(r, "dvrSettings");
flags |= DVR_TAG_FILES;
if(http_arg_get(&hc->hc_req_args, "commSkip") != NULL)
flags |= DVR_SKIP_COMMERCIALS;
+ if(http_arg_get(&hc->hc_req_args, "subtitleInTitle") != NULL)
+ flags |= DVR_SUBTITLE_IN_TITLE;
+ if(http_arg_get(&hc->hc_req_args, "episodeBeforeDate") != NULL)
+ flags |= DVR_EPISODE_BEFORE_DATE;
dvr_flags_set(cfg,flags);
}, [ 'storage', 'postproc', 'retention', 'dayDirs', 'channelDirs',
'channelInTitle', 'container', 'dateInTitle', 'timeInTitle',
'preExtraTime', 'postExtraTime', 'whitespaceInTitle', 'titleDirs',
- 'episodeInTitle', 'cleanTitle', 'tagFiles', 'commSkip' ]);
+ 'episodeInTitle', 'cleanTitle', 'tagFiles', 'commSkip', 'subtitleInTitle', 'episodeBeforeDate']);
var confcombo = new Ext.form.ComboBox({
store : tvheadend.configNames,
}), new Ext.form.Checkbox({
fieldLabel : 'Skip commercials',
name : 'commSkip'
+ }), new Ext.form.Checkbox({
+ fieldLabel : 'Include subtitle in filename',
+ name : 'subtitleInTitle'
+ }), new Ext.form.Checkbox({
+ fieldLabel : 'Put episode in filename before date and time',
+ name : 'episodeBeforeDate'
}), {
width : 300,
fieldLabel : 'Post-processor command',