]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
DVR: config/timerec - call changed routine after create, fixes #3666
authorJaroslav Kysela <perex@perex.cz>
Wed, 30 Mar 2016 07:14:42 +0000 (09:14 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 30 Mar 2016 07:14:42 +0000 (09:14 +0200)
src/api/api_dvr.c
src/dvr/dvr.h
src/dvr/dvr_config.c

index 8b8c94ad51b0770d996258a3f4a3112d81911433..9ab72bffffec3582f4ceea5dce88cef4bd51fd3d 100644 (file)
@@ -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;
index 627b3c106ba5c8f7b4ead8cff7505bc53586a57f..a17051c40f0d71e80f6ebb2d5abc54440d6526bc 100644 (file)
@@ -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)
index a7c526fb8c0e47c302b1f3ca750bd8fc85f5820d..f83c63073f7878ef677f3cbd8c355bc6a6e80325 100644 (file)
@@ -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)
 {