Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
mpegts input: pass weight to mi_is_enabled callback
  • Loading branch information
perexg committed Mar 18, 2016
1 parent 4c75447 commit 9fd6578
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 12 deletions.
4 changes: 2 additions & 2 deletions src/input/mpegts.h
Expand Up @@ -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);
Expand Down Expand Up @@ -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 );

Expand Down
2 changes: 1 addition & 1 deletion src/input/mpegts/linuxdvb/linuxdvb_adapter.c
Expand Up @@ -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;
Expand Down
5 changes: 3 additions & 2 deletions src/input/mpegts/linuxdvb/linuxdvb_frontend.c
Expand Up @@ -462,15 +462,16 @@ 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;
tvh_hardware_t *th;
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;
Expand Down
3 changes: 2 additions & 1 deletion src/input/mpegts/mpegts_input.c
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion src/input/mpegts/mpegts_mux_dvb.c
Expand Up @@ -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);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/input/mpegts/mpegts_service.c
Expand Up @@ -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) {
Expand Down
5 changes: 3 additions & 2 deletions src/input/mpegts/satip/satip_frontend.c
Expand Up @@ -483,15 +483,16 @@ 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;
int position, netlimit;

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 */
Expand Down
5 changes: 3 additions & 2 deletions src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c
Expand Up @@ -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 *
Expand Down

0 comments on commit 9fd6578

Please sign in to comment.