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;