diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index 6d0bd7e6..6f3f6561 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -58,7 +58,8 @@ static void linuxdvb_frontend_class_save ( idnode_t *in ) { linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t*)in; - linuxdvb_device_save((linuxdvb_device_t*)lfe->lh_parent->lh_parent); + if (lfe->lh_parent && lfe->lh_parent->lh_parent) + linuxdvb_device_save((linuxdvb_device_t*)lfe->lh_parent->lh_parent); } const idclass_t linuxdvb_frontend_class = @@ -95,12 +96,10 @@ linuxdvb_frontend_class_network_get(void *o) static void linuxdvb_frontend_class_network_set(void *o, const char *s) { -#if 0 mpegts_input_t *mi = o; mpegts_network_t *mn = mpegts_network_find(s); if (mn) mpegts_network_add_input(mn, mi); -#endif } static htsmsg_t * diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index 9e150276..94d47f46 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -308,7 +308,7 @@ mpegts_input_create0 { idnode_insert(&mi->mi_id, uuid, class); if (c) - idnode_load(&mi->mi_id, c); + idnode_load(&mi->mi_id, c, 0); /* Defaults */ mi->mi_is_enabled = mpegts_input_is_enabled; @@ -345,8 +345,6 @@ void mpegts_input_save ( mpegts_input_t *mi, htsmsg_t *m ) { idnode_save(&mi->mi_id, m); - if (mi->mi_network) - htsmsg_add_str(m, "network", idnode_uuid_as_str(&mi->mi_network->mn_id)); } /****************************************************************************** diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index 47212e7a..e3aa93e8 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -426,7 +426,7 @@ mpegts_mux_create0 /* Configuration */ if (conf) - idnode_load(&mm->mm_id, conf); + idnode_load(&mm->mm_id, conf, 0); /* Initial scan */ if (!mm->mm_initial_scan_done || !mn->mn_skipinitscan) diff --git a/src/input/mpegts/mpegts_network.c b/src/input/mpegts/mpegts_network.c index 6841e03e..dd2553e5 100644 --- a/src/input/mpegts/mpegts_network.c +++ b/src/input/mpegts/mpegts_network.c @@ -29,7 +29,8 @@ mpegts_network_class_save ( idnode_t *in ) { mpegts_network_t *mn = (mpegts_network_t*)in; - mn->mn_config_save(mn); + if (mn->mn_config_save) + mn->mn_config_save(mn); } const idclass_t mpegts_network_class = @@ -139,7 +140,7 @@ mpegts_network_create0 /* Setup idnode */ idnode_insert(&mn->mn_id, uuid, idc); if (conf) - idnode_load(&mn->mn_id, conf); + idnode_load(&mn->mn_id, conf, 0); /* Default callbacks */ mn->mn_display_name = mpegts_network_display_name; diff --git a/src/service.c b/src/service.c index d591dd09..2a52ad81 100644 --- a/src/service.c +++ b/src/service.c @@ -1447,7 +1447,7 @@ void service_load ( service_t *t, htsmsg_t *c ) streaming_component_type_t type; const char *v; - idnode_load(&t->s_id, c); + idnode_load(&t->s_id, c, 0); if(!htsmsg_get_u32(c, "pcr", &u32)) t->s_pcr_pid = u32;