From: Jaroslav Kysela Date: Fri, 18 Mar 2016 15:59:41 +0000 (+0100) Subject: mpegts input: pass weight to mi_is_enabled callback X-Git-Tag: v4.2.1~836 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9fd65781013b912e4d32f7859469d4bfaec2e099;p=thirdparty%2Ftvheadend.git mpegts input: pass weight to mi_is_enabled callback --- diff --git a/src/input/mpegts.h b/src/input/mpegts.h index 79ff40ffa..ff515ad21 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -703,7 +703,7 @@ struct mpegts_input /* * Functions */ - int (*mi_is_enabled) (mpegts_input_t*, mpegts_mux_t *mm, int flags); + int (*mi_is_enabled) (mpegts_input_t*, mpegts_mux_t *mm, int flags, int weight); void (*mi_enabled_updated)(mpegts_input_t*); void (*mi_display_name) (mpegts_input_t*, char *buf, size_t len); int (*mi_get_weight) (mpegts_input_t*, mpegts_mux_t *mm, int flags); @@ -776,7 +776,7 @@ void mpegts_input_status_timer ( void *p ); int mpegts_input_grace ( mpegts_input_t * mi, mpegts_mux_t * mm ); -int mpegts_input_is_enabled ( mpegts_input_t * mi, mpegts_mux_t *mm, int flags ); +int mpegts_input_is_enabled ( mpegts_input_t * mi, mpegts_mux_t *mm, int flags, int weight ); void mpegts_input_set_enabled ( mpegts_input_t *mi, int enabled ); diff --git a/src/input/mpegts/linuxdvb/linuxdvb_adapter.c b/src/input/mpegts/linuxdvb/linuxdvb_adapter.c index 8a4808a50..e55297b59 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_adapter.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_adapter.c @@ -133,7 +133,7 @@ linuxdvb_adapter_is_enabled ( linuxdvb_adapter_t *la ) { linuxdvb_frontend_t *lfe; LIST_FOREACH(lfe, &la->la_frontends, lfe_link) { - if (lfe->mi_is_enabled((mpegts_input_t*)lfe, NULL, 0)) + if (lfe->mi_is_enabled((mpegts_input_t*)lfe, NULL, 0, -1)) return 1; } return 0; diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index b9c266f40..eebc25d1f 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -462,7 +462,8 @@ linuxdvb_frontend_get_grace ( mpegts_input_t *mi, mpegts_mux_t *mm ) } static int -linuxdvb_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags ) +linuxdvb_frontend_is_enabled + ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags, int weight ) { linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t*)mi, *lfe2; linuxdvb_adapter_t *la; @@ -470,7 +471,7 @@ linuxdvb_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags ) char ubuf[UUID_HEX_SIZE]; if (lfe->lfe_fe_path == NULL) return 0; - if (!mpegts_input_is_enabled(mi, mm, flags)) return 0; + if (!mpegts_input_is_enabled(mi, mm, flags, weight)) return 0; if (access(lfe->lfe_fe_path, R_OK | W_OK)) return 0; if (lfe->lfe_in_setup) return 0; if (lfe->lfe_type != DVB_TYPE_S) return 1; diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index 8e5bc21aa..a247bca66 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -341,7 +341,8 @@ const idclass_t mpegts_input_class = * *************************************************************************/ int -mpegts_input_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags ) +mpegts_input_is_enabled + ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags, int weight ) { if ((flags & SUBSCRIPTION_EPG) != 0 && !mi->mi_ota_epg) return 0; diff --git a/src/input/mpegts/mpegts_mux_dvb.c b/src/input/mpegts/mpegts_mux_dvb.c index 2c3d86053..9c452a855 100644 --- a/src/input/mpegts/mpegts_mux_dvb.c +++ b/src/input/mpegts/mpegts_mux_dvb.c @@ -944,7 +944,7 @@ dvb_mux_create_instances ( mpegts_mux_t *mm ) mpegts_network_link_t *mnl; LIST_FOREACH(mnl, &mm->mm_network->mn_inputs, mnl_mn_link) { mpegts_input_t *mi = mnl->mnl_input; - if (mi->mi_is_enabled(mi, mm, 0)) + if (mi->mi_is_enabled(mi, mm, 0, -1)) mi->mi_create_mux_instance(mi, mm); } } diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index db7fd4aa9..369c11ec3 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -306,7 +306,7 @@ mpegts_service_enlist if (ti && (tvh_input_t *)mi != ti) continue; - if (!mi->mi_is_enabled(mi, mmi->mmi_mux, flags)) continue; + if (!mi->mi_is_enabled(mi, mmi->mmi_mux, flags, weight)) continue; /* Set weight to -1 (forced) for already active mux */ if (mmi->mmi_mux->mm_active == mmi) { diff --git a/src/input/mpegts/satip/satip_frontend.c b/src/input/mpegts/satip/satip_frontend.c index 462145d8d..e464985dc 100644 --- a/src/input/mpegts/satip/satip_frontend.c +++ b/src/input/mpegts/satip/satip_frontend.c @@ -483,7 +483,8 @@ satip_frontend_match_satcfg ( satip_frontend_t *lfe2, mpegts_mux_t *mm2 ) } static int -satip_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags ) +satip_frontend_is_enabled + ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags, int weight ) { satip_frontend_t *lfe = (satip_frontend_t*)mi; satip_frontend_t *lfe2; @@ -491,7 +492,7 @@ satip_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags ) lock_assert(&global_lock); - if (!mpegts_input_is_enabled(mi, mm, flags)) return 0; + if (!mpegts_input_is_enabled(mi, mm, flags, weight)) return 0; if (lfe->sf_device->sd_dbus_allow <= 0) return 0; if (lfe->sf_type != DVB_TYPE_S) return 1; /* try to reuse any input for limited networks if allowed */ diff --git a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c index 4dfa459ca..f8b10afd9 100644 --- a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c +++ b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c @@ -42,9 +42,10 @@ tvhdhomerun_frontend_get_grace ( mpegts_input_t *mi, mpegts_mux_t *mm ) } static int -tvhdhomerun_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags ) +tvhdhomerun_frontend_is_enabled + ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags, int weight ) { - return mpegts_input_is_enabled(mi, mm, flags); + return mpegts_input_is_enabled(mi, mm, flags, weight); } static void *