/*
* 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);
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 );
{
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;
}
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;
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;
* *************************************************************************/
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;
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);
}
}
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) {
}
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;
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 */
}
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 *