]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
service: added s_is_enabled() function for checking enable chain
authorAdam Sutton <dev@adamsutton.me.uk>
Sat, 19 Jan 2013 00:57:22 +0000 (00:57 +0000)
committerAdam Sutton <dev@adamsutton.me.uk>
Sun, 20 Jan 2013 12:28:25 +0000 (12:28 +0000)
src/dvb/dvb_service.c
src/iptv_input.c
src/service.h
src/v4l.c

index c927ec3ea71750ce3fcbacd6a370171b1a1013fc..a91e92d5048416d8f2c4c997e97aa00b9ca997f2 100644 (file)
@@ -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);
index 314e5b592d59f775e381b3756da502fe7892fdea..6c39a8661f40b6c783737f6bcf6f63cc1eed5ee1 100644 (file)
@@ -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;
index 700c150e9f672cf28b2349eaa5f352529115e4b6..05321cde14a320762dc8a67cd5ce54fab32c880e 100644 (file)
@@ -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
index a640a38797f029a708b82c79feeb4a625c40e7b3..1a48fed80927b425aef403e991f6d40c9701105d 100644 (file)
--- 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;