From 0218b3842a4b0bce061044cf3f56e0ac1aefaa7b Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Thu, 15 Aug 2013 12:05:30 +0100 Subject: [PATCH] mpegts linuxdvb: some minor modifications to linuxdvb for better idnode API --- src/input/mpegts.h | 4 --- src/input/mpegts/linuxdvb/linuxdvb_frontend.c | 3 +-- src/input/mpegts/linuxdvb/linuxdvb_network.c | 27 ++++++++++--------- src/input/mpegts/linuxdvb/linuxdvb_satconf.c | 4 +-- 4 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/input/mpegts.h b/src/input/mpegts.h index 116c3af3..59bb3086 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -177,7 +177,6 @@ struct mpegts_network /* * Functions */ - void (*mn_delete) (mpegts_network_t *mn); void (*mn_display_name) (mpegts_network_t*, char *buf, size_t len); void (*mn_config_save) (mpegts_network_t*); mpegts_mux_t* (*mn_create_mux) @@ -472,9 +471,6 @@ extern const idclass_t mpegts_network_class; #define mpegts_network_find(u)\ idnode_find(u, &mpegts_network_class) -#define mpegts_network_delete_by_uuid(u)\ - { mpegts_network_t *mn = mpegts_network_find(u); if (mn && mn->mn_delete) mn->mn_delete(mn); } - void mpegts_network_delete ( mpegts_network_t *mn ); void mpegts_network_schedule_initial_scan diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index aff55313..2110f8ff 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -95,8 +95,7 @@ linuxdvb_frontend_class_network_enum(void *o) htsmsg_t *m = htsmsg_create_map(); htsmsg_t *p = htsmsg_create_map(); htsmsg_add_str(m, "type", "api"); - htsmsg_add_str(m, "uri", "mpegts/input"); - htsmsg_add_str(p, "op", "network_list"); + htsmsg_add_str(m, "uri", "mpegts/input/network_list"); htsmsg_add_str(p, "uuid", idnode_uuid_as_str((idnode_t*)o)); htsmsg_add_str(m, "event", "mpegts_network"); htsmsg_add_msg(m, "params", p); diff --git a/src/input/mpegts/linuxdvb/linuxdvb_network.c b/src/input/mpegts/linuxdvb/linuxdvb_network.c index e3d11eba..1ea523cf 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_network.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_network.c @@ -36,11 +36,25 @@ extern const idclass_t mpegts_network_class; +static void +linuxdvb_network_class_delete ( idnode_t *in ) +{ + mpegts_network_t *mn = (mpegts_network_t*)in; + + /* remove config */ + hts_settings_remove("input/linuxdvb/networks/%s", + idnode_uuid_as_str(in)); + + /* Parent delete */ + mpegts_network_delete(mn); +} + const idclass_t linuxdvb_network_class = { .ic_super = &mpegts_network_class, .ic_class = "linuxdvb_network", .ic_caption = "LinuxDVB Network", + .ic_delete = linuxdvb_network_class_delete, .ic_properties = (const property_t[]){ {} } @@ -169,18 +183,6 @@ linuxdvb_network_mux_create2 NULL, NULL, conf); } -static void -linuxdvb_network_delete - ( mpegts_network_t *mn ) -{ - /* remove config */ - hts_settings_remove("input/linuxdvb/networks/%s", - idnode_uuid_as_str(&mn->mn_id)); - - /* Parent delete */ - mpegts_network_delete(mn); -} - /* **************************************************************************** * Creation/Config * ***************************************************************************/ @@ -208,7 +210,6 @@ linuxdvb_network_create0 ln->ln_type = FE_ATSC; /* Callbacks */ - ln->mn_delete = linuxdvb_network_delete; ln->mn_create_mux = linuxdvb_network_create_mux; ln->mn_create_service = linuxdvb_network_create_service; ln->mn_config_save = linuxdvb_network_config_save; diff --git a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c index 96b3b2e0..823fa765 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c @@ -77,9 +77,9 @@ linuxdvb_satconf_class_network_enum(void *o) htsmsg_t *m = htsmsg_create_map(); htsmsg_t *p = htsmsg_create_map(); htsmsg_add_str(m, "type", "api"); - htsmsg_add_str(m, "uri", "idnode"); + htsmsg_add_str(m, "uri", "idnode/load"); htsmsg_add_str(m, "event", "mpegts_network"); - htsmsg_add_str(p, "op", "list"); + htsmsg_add_u32(p, "enum", 1); htsmsg_add_str(p, "class", linuxdvb_network_dvbs_class.ic_class); htsmsg_add_msg(m, "params", p);