From: Jaroslav Kysela Date: Wed, 30 Mar 2016 07:14:42 +0000 (+0200) Subject: DVR: config/timerec - call changed routine after create, fixes #3666 X-Git-Tag: v4.2.1~778 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45250ee70a36cd7373a831cf336a23b59007c507;p=thirdparty%2Ftvheadend.git DVR: config/timerec - call changed routine after create, fixes #3666 --- diff --git a/src/api/api_dvr.c b/src/api/api_dvr.c index 8b8c94ad5..9ab72bfff 100644 --- a/src/api/api_dvr.c +++ b/src/api/api_dvr.c @@ -56,8 +56,10 @@ api_dvr_config_create return EINVAL; pthread_mutex_lock(&global_lock); - if ((cfg = dvr_config_create(NULL, NULL, conf))) + if ((cfg = dvr_config_create(NULL, NULL, conf))) { idnode_changed(&cfg->dvr_id); + dvr_config_changed(cfg); + } pthread_mutex_unlock(&global_lock); return 0; @@ -468,8 +470,10 @@ api_dvr_timerec_create pthread_mutex_lock(&global_lock); dte = dvr_timerec_create(NULL, conf); - if (dte) + if (dte) { idnode_changed(&dte->dte_id); + dvr_timerec_check(dte); + } pthread_mutex_unlock(&global_lock); return 0; diff --git a/src/dvr/dvr.h b/src/dvr/dvr.h index 627b3c106..a17051c40 100644 --- a/src/dvr/dvr.h +++ b/src/dvr/dvr.h @@ -442,6 +442,8 @@ static inline dvr_config_t *dvr_config_find_by_uuid(const char *uuid) void dvr_config_delete(const char *name); +void dvr_config_changed(dvr_config_t *cfg); + void dvr_config_destroy_by_profile(profile_t *pro, int delconf); static inline uint32_t dvr_retention_cleanup(uint32_t val) diff --git a/src/dvr/dvr_config.c b/src/dvr/dvr_config.c index a7c526fb8..f83c63073 100644 --- a/src/dvr/dvr_config.c +++ b/src/dvr/dvr_config.c @@ -510,14 +510,12 @@ dvr_config_delete(const char *name) tvhwarn("dvr", "Attempt to delete default config ignored"); } -/* ************************************************************************** - * DVR Config Class definition - * **************************************************************************/ - -static void -dvr_config_class_changed(idnode_t *self) +/** + * + */ +void +dvr_config_changed(dvr_config_t *cfg) { - dvr_config_t *cfg = (dvr_config_t *)self; if (dvr_config_is_default(cfg)) cfg->dvr_enabled = 1; cfg->dvr_valid = 1; @@ -539,6 +537,17 @@ dvr_config_class_changed(idnode_t *self) cfg->dvr_retention_days = DVR_RET_FOREVER; } + +/* ************************************************************************** + * DVR Config Class definition + * **************************************************************************/ + +static void +dvr_config_class_changed(idnode_t *self) +{ + dvr_config_changed((dvr_config_t *)self); +} + static htsmsg_t * dvr_config_class_save(idnode_t *self, char *filename, size_t fsize) {