From: Adam Sutton Date: Sat, 19 Jan 2013 00:57:22 +0000 (+0000) Subject: service: added s_is_enabled() function for checking enable chain X-Git-Tag: v3.5~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=27e0eb09a2b91d7813a8cbde56c90be630c69e8a;p=thirdparty%2Ftvheadend.git service: added s_is_enabled() function for checking enable chain --- diff --git a/src/dvb/dvb_service.c b/src/dvb/dvb_service.c index c927ec3ea..a91e92d50 100644 --- a/src/dvb/dvb_service.c +++ b/src/dvb/dvb_service.c @@ -135,6 +135,17 @@ dvb_service_refresh(service_t *t) tda->tda_open_service(tda, t); } +/** + * + */ +static int +dvb_service_is_enabled(service_t *t) +{ + th_dvb_mux_instance_t *tdmi = t->s_dvb_mux_instance; + th_dvb_adapter_t *tda = tdmi->tdmi_adapter; + return tda->tda_enabled && tdmi->tdmi_enabled && t->s_enabled; +} + /** * @@ -432,6 +443,7 @@ dvb_service_find2(th_dvb_mux_instance_t *tdmi, uint16_t sid, int pmt_pid, t->s_setsourceinfo = dvb_service_setsourceinfo; t->s_quality_index = dvb_service_quality; t->s_grace_period = dvb_grace_period; + t->s_is_enabled = dvb_service_is_enabled; t->s_dvb_mux_instance = tdmi; LIST_INSERT_HEAD(&tdmi->tdmi_transports, t, s_group_link); diff --git a/src/iptv_input.c b/src/iptv_input.c index 314e5b592..6c39a8661 100644 --- a/src/iptv_input.c +++ b/src/iptv_input.c @@ -461,6 +461,14 @@ iptv_service_quality(service_t *t) return 100; } +/** + * + */ +static int +iptv_service_is_enabled(service_t *t) +{ + return t->s_enabled; +} /** * Generate a descriptive name for the source @@ -543,6 +551,7 @@ iptv_service_find(const char *id, int create) t->s_config_save = iptv_service_save; t->s_setsourceinfo = iptv_service_setsourceinfo; t->s_quality_index = iptv_service_quality; + t->s_is_enabled = iptv_service_is_enabled; t->s_grace_period = iptv_grace_period; t->s_dtor = iptv_service_dtor; t->s_iptv_fd = -1; diff --git a/src/service.h b/src/service.h index 700c150e9..05321cde1 100644 --- a/src/service.h +++ b/src/service.h @@ -249,6 +249,7 @@ typedef struct service { * subscription scheduling. */ int s_enabled; + int (*s_is_enabled)(struct service *t); /** * Last PCR seen, we use it for a simple clock for rawtsinput.c diff --git a/src/v4l.c b/src/v4l.c index a640a3879..1a48fed80 100644 --- a/src/v4l.c +++ b/src/v4l.c @@ -304,6 +304,15 @@ v4l_service_quality(service_t *t) return 100; } +/** + * + */ +static int +v4l_service_is_enabled(service_t *t) +{ + return t->s_enabled; +} + /** * @@ -372,6 +381,7 @@ v4l_service_find(v4l_adapter_t *va, const char *id, int create) t->s_config_save = v4l_service_save; t->s_setsourceinfo = v4l_service_setsourceinfo; t->s_quality_index = v4l_service_quality; + t->s_is_enabled = v4l_service_is_enabled; t->s_grace_period = v4l_grace_period; t->s_iptv_fd = -1; t->s_v4l_adapter = va;