Add new routine to determine the primary EPG service. To avoid confusion for OTA services.
This commit is contained in:
parent
72561f2a45
commit
d9f6fd39e9
2 changed files with 19 additions and 0 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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__
|
||||
|
|
Loading…
Add table
Reference in a new issue