]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts: consolidate dvb network list
authorSven Wegener <sven.wegener@stealer.net>
Mon, 9 Nov 2015 19:45:10 +0000 (20:45 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 9 Nov 2015 21:11:16 +0000 (22:11 +0100)
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
src/input/mpegts/linuxdvb/linuxdvb_frontend.c
src/input/mpegts/mpegts_dvb.h
src/input/mpegts/mpegts_network_dvb.c
src/input/mpegts/satip/satip_frontend.c
src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c

index ea5683725feb44dc189b08c55a99af65cd22785a..69443f3d59ec3a024e5e596f6ae318303d521962 100644 (file)
@@ -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);
 }
 
 /* **************************************************************************
index dfb4ac6eff63de33057509c2a6e77ef06454f74c..e054552e21647f9f13cde6cc4ca7cce87d02fe26 100644 (file)
@@ -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 );
 
index 2dc86863a95cf815fbf59a2e40da0ce4cf2e016c..7f0a393588c6f29b8055815954a429d980f86797 100644 (file)
@@ -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;
index d3166c403f583fb2644c3c783b339edee2d39f0c..7f007ec606c54af9d89da0d3010037eee04cf9af 100644 (file)
@@ -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);
 }
 
 /* **************************************************************************
index b32ab80309fd440205b633ba5d6b813a5d1e7cde..a7db1962dc4efb638f2ae1097163e824493a7910 100644 (file)
@@ -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