From: Sven Wegener Date: Mon, 9 Nov 2015 19:45:10 +0000 (+0100) Subject: mpegts: consolidate dvb network list X-Git-Tag: v4.2.1~1615 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=44746cfa956ee9be1f629b760ea8e4d7ec01538d;p=thirdparty%2Ftvheadend.git mpegts: consolidate dvb network list Signed-off-by: Sven Wegener --- diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index ea5683725..69443f3d5 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -529,23 +529,11 @@ static idnode_set_t * linuxdvb_frontend_network_list ( mpegts_input_t *mi ) { linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t*)mi; - const idclass_t *idc; tvhtrace("linuxdvb", "%s: network list for %s", mi->mi_name ?: "", dvb_type2str(lfe->lfe_type)); - if (lfe->lfe_type == DVB_TYPE_T) - idc = &dvb_network_dvbt_class; - else if (lfe->lfe_type == DVB_TYPE_C) - idc = &dvb_network_dvbc_class; - else if (lfe->lfe_type == DVB_TYPE_S) - idc = &dvb_network_dvbs_class; - else if (lfe->lfe_type == DVB_TYPE_ATSC) - idc = &dvb_network_atsc_class; - else - return NULL; - - return idnode_find_all(idc, NULL); + return dvb_network_list_by_fe_type(lfe->lfe_type); } /* ************************************************************************** diff --git a/src/input/mpegts/mpegts_dvb.h b/src/input/mpegts/mpegts_dvb.h index dfb4ac6ef..e054552e2 100644 --- a/src/input/mpegts/mpegts_dvb.h +++ b/src/input/mpegts/mpegts_dvb.h @@ -59,6 +59,8 @@ static inline dvb_network_t *dvb_network_find_by_uuid(const char *uuid) const idclass_t *dvb_network_class_by_fe_type(dvb_fe_type_t type); dvb_fe_type_t dvb_fe_type_by_network_class(const idclass_t *idc); +idnode_set_t *dvb_network_list_by_fe_type(dvb_fe_type_t type); + dvb_network_t *dvb_network_create0 ( const char *uuid, const idclass_t *idc, htsmsg_t *conf ); diff --git a/src/input/mpegts/mpegts_network_dvb.c b/src/input/mpegts/mpegts_network_dvb.c index 2dc86863a..7f0a39358 100644 --- a/src/input/mpegts/mpegts_network_dvb.c +++ b/src/input/mpegts/mpegts_network_dvb.c @@ -738,6 +738,16 @@ dvb_fe_type_t dvb_fe_type_by_network_class(const idclass_t *idc) return DVB_TYPE_NONE; } +idnode_set_t *dvb_network_list_by_fe_type(dvb_fe_type_t type) +{ + const idclass_t *idc = dvb_network_class_by_fe_type(type); + + if (!idc) + return NULL; + + return idnode_find_all(idc, NULL); +} + int dvb_network_get_orbital_pos(mpegts_network_t *mn) { dvb_network_t *ln = (dvb_network_t *)mn; diff --git a/src/input/mpegts/satip/satip_frontend.c b/src/input/mpegts/satip/satip_frontend.c index d3166c403..7f007ec60 100644 --- a/src/input/mpegts/satip/satip_frontend.c +++ b/src/input/mpegts/satip/satip_frontend.c @@ -574,20 +574,8 @@ static idnode_set_t * satip_frontend_network_list ( mpegts_input_t *mi ) { satip_frontend_t *lfe = (satip_frontend_t*)mi; - const idclass_t *idc; - - if (lfe->sf_type == DVB_TYPE_T) - idc = &dvb_network_dvbt_class; - else if (lfe->sf_type == DVB_TYPE_S) - idc = &dvb_network_dvbs_class; - else if (lfe->sf_type == DVB_TYPE_C) - idc = &dvb_network_dvbc_class; - else if (lfe->sf_type == DVB_TYPE_ATSC) - idc = &dvb_network_atsc_class; - else - return NULL; - return idnode_find_all(idc, NULL); + return dvb_network_list_by_fe_type(lfe->sf_type); } /* ************************************************************************** diff --git a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c index b32ab8030..a7db1962d 100644 --- a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c +++ b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c @@ -507,18 +507,8 @@ static idnode_set_t * tvhdhomerun_frontend_network_list ( mpegts_input_t *mi ) { tvhdhomerun_frontend_t *hfe = (tvhdhomerun_frontend_t*)mi; - const idclass_t *idc; - - if (hfe->hf_type == DVB_TYPE_T) - idc = &dvb_network_dvbt_class; - else if (hfe->hf_type == DVB_TYPE_C) - idc = &dvb_network_dvbc_class; - else if (hfe->hf_type == DVB_TYPE_ATSC) - idc = &dvb_network_atsc_class; - else - return NULL; - return idnode_find_all(idc, NULL); + return dvb_network_list_by_fe_type(hfe->hf_type); } static void