diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index 899ecea4..a4947c36 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -892,6 +892,7 @@ dvb_sdt_callback /* Save details */ if (save) { + idnode_notify(NULL, &s->s_id, 0, NULL); s->s_config_save((service_t*)s); service_refresh_channel((service_t*)s); } diff --git a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c index 32d3e272..3302f595 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c @@ -565,7 +565,7 @@ linuxdvb_satconf_create0 ls->ls_lnb = linuxdvb_lnb_create0(NULL, NULL, ls); /* Notification */ - idnode_notify("linuxdvb_satconf", &ls->mi_id, 0); + idnode_notify("linuxdvb_satconf", &ls->mi_id, 0, NULL); return ls; } diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index a08c7967..6295d85b 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -445,6 +445,8 @@ mpegts_mux_create0 mpegts_network_t *mn, uint16_t onid, uint16_t tsid, htsmsg_t *conf ) { char buf[256]; + static htsmsg_t *inc = NULL; + idnode_insert(&mm->mm_id, uuid, class); /* Enabled by default */ @@ -485,8 +487,12 @@ mpegts_mux_create0 tvhtrace("mpegts", "%s - created", buf); /* Notification */ - idnode_notify("mpegts_mux", &mm->mm_id, 0); - idnode_notify(NULL, &mn->mn_id, 0); + idnode_notify("mpegts_mux", &mm->mm_id, 0, NULL); + if (!inc) { + inc = htsmsg_create_map(); + htsmsg_set_u32(inc, "num_mux", 1); + } + idnode_notify(NULL, &mn->mn_id, 0, inc); return mm; } @@ -507,6 +513,7 @@ mpegts_mux_set_onid ( mpegts_mux_t *mm, uint16_t onid ) mm->mm_display_name(mm, buf, sizeof(buf)); mm->mm_config_save(mm); tvhtrace("mpegts", "%s - set onid %04X (%d)", buf, onid, onid); + //idnode_notify(NULL, &mm->mm_id, 0, NULL); return 1; } @@ -520,6 +527,7 @@ mpegts_mux_set_tsid ( mpegts_mux_t *mm, uint16_t tsid ) mm->mm_display_name(mm, buf, sizeof(buf)); mm->mm_config_save(mm); tvhtrace("mpegts", "%s - set tsid %04X (%d)", buf, tsid, tsid); + //idnode_notify(NULL, &mm->mm_id, 0, NULL); return 1; } @@ -533,6 +541,7 @@ mpegts_mux_set_crid_authority ( mpegts_mux_t *mm, const char *defauth ) mm->mm_display_name(mm, buf, sizeof(buf)); mm->mm_config_save(mm); tvhtrace("mpegts", "%s - set crid authority %s", buf, defauth); + //idnode_notify(NULL, &mm->mm_id, 0, NULL); return 1; } diff --git a/src/input/mpegts/mpegts_network.c b/src/input/mpegts/mpegts_network.c index d0c42c56..cefc4d76 100644 --- a/src/input/mpegts/mpegts_network.c +++ b/src/input/mpegts/mpegts_network.c @@ -224,7 +224,7 @@ mpegts_network_create0 tvhtrace("mpegts", "created network %s", buf); /* Notification */ - idnode_notify("mpegts_network", &mn->mn_id, 0); + idnode_notify("mpegts_network", &mn->mn_id, 0, NULL); return mn; } diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index 47f31713..4681d0c2 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -298,6 +298,7 @@ mpegts_service_create0 mpegts_mux_t *mm, uint16_t sid, uint16_t pmt_pid, htsmsg_t *conf ) { char buf[256]; + static htsmsg_t *inc = NULL; service_create0((service_t*)s, class, uuid, S_MPEG_TS, conf); /* Create */ @@ -326,8 +327,13 @@ mpegts_service_create0 tvhlog(LOG_DEBUG, "mpegts", "%s - add service %04X %s", buf, s->s_dvb_service_id, s->s_dvb_svcname); /* Notification */ - idnode_notify(NULL, &s->s_dvb_mux->mm_id, 0); - idnode_notify(NULL, &s->s_dvb_mux->mm_network->mn_id, 0); + if (!inc) { + inc = htsmsg_create_map(); + htsmsg_set_u32(inc, "num_mux", 1); + htsmsg_set_u32(inc, "num_svc", 1); + } + idnode_notify(NULL, &s->s_dvb_mux->mm_id, 0, inc); + idnode_notify(NULL, &s->s_dvb_mux->mm_network->mn_id, 0, inc); return s; } diff --git a/src/service.c b/src/service.c index a612d16c..b310c952 100644 --- a/src/service.c +++ b/src/service.c @@ -523,7 +523,7 @@ service_create0 service_load(t, conf); /* Notify */ - idnode_notify("service", &t->s_id, 0); + idnode_notify("service", &t->s_id, 0, NULL); return t; }