]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Add new routine to determine the primary EPG service. To avoid confusion for OTA...
authorAdam Sutton <dev@adamsutton.me.uk>
Wed, 11 Jul 2012 12:05:24 +0000 (13:05 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Mon, 30 Jul 2012 15:02:36 +0000 (16:02 +0100)
src/service.c
src/service.h

index 2e66544296f75c8bc9d1f856bac5a8dfadeade63..7db19fc02128876ec316f99e98a912181e0bc8ca 100644 (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);
+}
index 2287db50702e22f83a20ff2e320dfe79eaaab97c..9d2931b9db2f217cb4a546ee6404aa5b42914788 100644 (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__