Add new routine to determine the primary EPG service. To avoid confusion for OTA services.

This commit is contained in:
Adam Sutton 2012-07-11 13:05:24 +01:00
parent 72561f2a45
commit d9f6fd39e9
2 changed files with 19 additions and 0 deletions

View file

@ -1130,3 +1130,20 @@ service_get_encryption(service_t *t)
}
return 0;
}
/*
* Find the primary EPG service (to stop EPG trying to update
* from multiple OTA sources)
*/
int
service_is_primary_epg(service_t *svc)
{
service_t *ret = NULL, *t;
if (!svc || !svc->s_ch) return 0;
LIST_FOREACH(t, &svc->s_ch->ch_services, s_ch_link) {
if (!t->s_enabled || !t->s_dvb_eit_enable) continue;
if (!ret || dvb_extra_prio(t->s_dvb_mux_instance->tdmi_adapter) > dvb_extra_prio(ret->s_dvb_mux_instance->tdmi_adapter))
ret = t;
}
return !ret ? 0 : (ret->s_dvb_service_id == svc->s_dvb_service_id);
}

View file

@ -576,4 +576,6 @@ void service_set_dvb_default_charset(service_t *t, const char *dvb_default_chars
void service_set_dvb_eit_enable(service_t *t, int dvb_eit_enable);
int service_is_primary_epg (service_t *t);
#endif // SERVICE_H__