diff --git a/src/dvr/dvr.h b/src/dvr/dvr.h index 1d226020..2f518c50 100644 --- a/src/dvr/dvr.h +++ b/src/dvr/dvr.h @@ -311,6 +311,10 @@ int dvr_entry_get_mc(dvr_entry_t *de); int dvr_entry_get_retention( dvr_entry_t *de ); +int dvr_entry_get_extra_time_post( dvr_entry_t *de ); + +int dvr_entry_get_extra_time_pre( dvr_entry_t *de ); + void dvr_entry_save(dvr_entry_t *de); const char *dvr_entry_status(dvr_entry_t *de); diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index db50c0b4..4ad1b5f1 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -58,6 +58,19 @@ static inline int extra_valid(time_t extra) static int dvr_entry_get_start_time( dvr_entry_t *de ) +{ + /* Note 30 seconds might not be enough (rotors) */ + return de->de_start - (60 * dvr_entry_get_extra_time_pre(de)) - 30; +} + +static int +dvr_entry_get_stop_time( dvr_entry_t *de ) +{ + return de->de_stop + (60 * dvr_entry_get_extra_time_post(de)); +} + +int +dvr_entry_get_extra_time_pre( dvr_entry_t *de ) { time_t extra = de->de_start_extra; @@ -67,12 +80,11 @@ dvr_entry_get_start_time( dvr_entry_t *de ) if (!extra_valid(extra)) extra = de->de_config->dvr_extra_time_pre; } - /* Note 30 seconds might not be enough (rotors) */ - return de->de_start - (60 * extra) - 30; + return extra; } -static int -dvr_entry_get_stop_time( dvr_entry_t *de ) +int +dvr_entry_get_extra_time_post( dvr_entry_t *de ) { time_t extra = de->de_stop_extra; @@ -82,7 +94,7 @@ dvr_entry_get_stop_time( dvr_entry_t *de ) if (!extra_valid(extra)) extra = de->de_config->dvr_extra_time_post; } - return de->de_stop + (60 * extra); + return extra; } int diff --git a/src/htsp_server.c b/src/htsp_server.c index b639f62b..94c33d25 100644 --- a/src/htsp_server.c +++ b/src/htsp_server.c @@ -665,10 +665,10 @@ htsp_build_dvrentry(dvr_entry_t *de, const char *method) htsmsg_add_s64(out, "start", de->de_start); htsmsg_add_s64(out, "stop", de->de_stop); - htsmsg_add_s64(out, "startExtra", de->de_start_extra); - htsmsg_add_s64(out, "stopExtra", de->de_stop_extra); + htsmsg_add_s64(out, "startExtra", dvr_entry_get_extra_time_pre(de)); + htsmsg_add_s64(out, "stopExtra", dvr_entry_get_extra_time_post(de)); + htsmsg_add_u32(out, "retention", dvr_entry_get_retention(de)); htsmsg_add_u32(out, "priority", de->de_pri); - htsmsg_add_u32(out, "retention", de->de_retention); htsmsg_add_u32(out, "contentType", de->de_content_type); if( de->de_title && (s = lang_str_get(de->de_title, NULL)))