]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
tsfile: don't save tsfile channels
authorJaroslav Kysela <perex@perex.cz>
Tue, 27 Oct 2015 20:31:18 +0000 (21:31 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 27 Oct 2015 20:40:40 +0000 (21:40 +0100)
src/channels.c
src/channels.h
src/input/mpegts/tsfile/tsfile.c
src/webui/statedump.c

index 93e242ab537b1ed64b9ed312738e9ff35e9162c9..b1301f71a9da549add424677bf60603aea29aa8b 100644 (file)
@@ -838,9 +838,11 @@ void
 channel_save ( channel_t *ch )
 {
   htsmsg_t *c = htsmsg_create_map();
-  idnode_save(&ch->ch_id, c);
-  hts_settings_save(c, "channel/config/%s", idnode_uuid_as_sstr(&ch->ch_id));
-  htsmsg_destroy(c);
+  if (ch->ch_dont_save == 0) {
+    idnode_save(&ch->ch_id, c);
+    hts_settings_save(c, "channel/config/%s", idnode_uuid_as_sstr(&ch->ch_id));
+    htsmsg_destroy(c);
+  }
   /* update the EPG channel <-> channel mapping here */
   if (ch->ch_enabled && ch->ch_epgauto)
     epggrab_channel_add(ch);
index ebb15ec942db250b59fc645d1e9a8dfb38d4cb43..7a8c75508caab5ae2347518504ce18f4a9b5697c 100644 (file)
@@ -44,8 +44,8 @@ typedef struct channel
   RB_ENTRY(channel)   ch_link;
 
   int ch_refcount;
-  int ch_zombie;
   int ch_load;
+  int ch_dont_save;
 
   /* Channel info */
   int     ch_enabled;
index 1581683e46d3b0fa98e0c39233b5ebafdd346bf1..51df7b79bee3dbf30867e553052a30ddea583cd3 100644 (file)
@@ -38,6 +38,12 @@ tsfile_service_config_save ( service_t *s )
 {
 }
 
+static void
+tsfile_service_delete ( service_t *s, int delconf )
+{
+  mpegts_service_delete(s, 0);
+}
+
 /*
  * Network definition
  */
@@ -51,9 +57,13 @@ tsfile_network_create_service
   // TODO: HACK: REMOVE ME
   if (s) {
     s->s_config_save = tsfile_service_config_save;
+    s->s_delete = tsfile_service_delete;
     pthread_mutex_unlock(&tsfile_lock);
     channel_t *c = channel_create(NULL, NULL, NULL);
-    service_mapper_link((service_t*)s, c, NULL);
+    if (c) {
+      c->ch_dont_save = 1;
+      service_mapper_link((service_t*)s, c, NULL);
+    }
   }
   else
     pthread_mutex_unlock(&tsfile_lock);
index d9bc05a13770a55ca7769982aabed6b8d125437d..6c3dcb974800e6170fbd525d4ba2b887ecf73c04 100644 (file)
@@ -70,11 +70,9 @@ dumpchannels(htsbuf_queue_t *hq)
       snprintf(chbuf, sizeof(chbuf), "%u", channel_get_major(chnum));
     htsbuf_qprintf(hq,
                   "  refcount = %d\n"
-                  "  zombie = %d\n"
                   "  number = %s\n"
                   "  icon = %s\n\n",
                   ch->ch_refcount,
-                  ch->ch_zombie,
                   chbuf,
                   channel_get_icon(ch) ?: "<none set>");
   }