From 27e0eb09a2b91d7813a8cbde56c90be630c69e8a Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Sat, 19 Jan 2013 00:57:22 +0000 Subject: [PATCH] service: added s_is_enabled() function for checking enable chain --- src/dvb/dvb_service.c | 12 ++++++++++++ src/iptv_input.c | 9 +++++++++ src/service.h | 1 + src/v4l.c | 10 ++++++++++ 4 files changed, 32 insertions(+) diff --git a/src/dvb/dvb_service.c b/src/dvb/dvb_service.c index c927ec3e..a91e92d5 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 314e5b59..6c39a866 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 700c150e..05321cde 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 a640a387..1a48fed8 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;