]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Some more work getting the mux scanner code to work properly.
authorAdam Sutton <dev@adamsutton.me.uk>
Wed, 27 Jun 2012 08:36:01 +0000 (09:36 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Wed, 27 Jun 2012 08:36:01 +0000 (09:36 +0100)
src/dvb/dvb.h
src/dvb/dvb_fe.c
src/dvb/dvb_multiplex.c
src/epggrab/ota.c

index 488620bcc215b1632f041f8ef37884b589bf259e..1f843cfc9d86847d53f0eeda280d0461ea746e72 100644 (file)
@@ -350,6 +350,8 @@ const char *dvb_mux_add_by_params(th_dvb_adapter_t *tda,
 int dvb_mux_copy(th_dvb_adapter_t *dst, th_dvb_mux_instance_t *tdmi_src,
                 dvb_satconf_t *satconf);
 
+void dvb_mux_add_to_scan_queue (th_dvb_mux_instance_t *tdmi);
+
 /**
  * DVB Transport (aka DVB service)
  */
index c6f91a19191a68a9c09807d7f415d9fc657bde24..79087940028fc3e30852a36ce23198442bdba8ab 100644 (file)
@@ -228,12 +228,7 @@ dvb_fe_stop(th_dvb_mux_instance_t *tdmi)
   assert(tdmi->tdmi_scan_queue == NULL);
 
   if(tdmi->tdmi_enabled) {
-    int ti;
-    ti = LIST_FIRST(&tdmi->tdmi_epg_grabbers) ? TDA_SCANQ_EPG
-       : tdmi->tdmi_quality == 100            ? TDA_SCANQ_OK
-                                              : TDA_SCANQ_BAD;
-    tdmi->tdmi_scan_queue = &tda->tda_scan_queues[ti];
-    TAILQ_INSERT_TAIL(tdmi->tdmi_scan_queue, tdmi, tdmi_scan_link);
+    dvb_mux_add_to_scan_queue(tdmi);
   }
 
   time(&tdmi->tdmi_lost_adapter);
index de7324aae41fb45e3fd6298f5b9969f7de543e74..8a4b8882f7aac8edc471a46258185a500b6b02e1 100644 (file)
@@ -1152,3 +1152,14 @@ dvb_mux_copy(th_dvb_adapter_t *dst, th_dvb_mux_instance_t *tdmi_src,
   dvb_mux_save(tdmi_dst);
   return 0;
 }
+
+void dvb_mux_add_to_scan_queue ( th_dvb_mux_instance_t *tdmi )
+{
+  int ti;
+  th_dvb_adapter_t *tda = tdmi->tdmi_adapter;
+  ti = LIST_FIRST(&tdmi->tdmi_epg_grabbers) ? TDA_SCANQ_EPG
+     : tdmi->tdmi_quality == 100            ? TDA_SCANQ_OK
+                                            : TDA_SCANQ_BAD;
+  tdmi->tdmi_scan_queue = &tda->tda_scan_queues[ti];
+  TAILQ_INSERT_TAIL(tdmi->tdmi_scan_queue, tdmi, tdmi_scan_link);
+}
index 2804a616aa8bbb254a0ccedafd106943a6559d63..2dc132d5d02cbe8d58ff788ba64d2487d2070842 100644 (file)
@@ -49,6 +49,12 @@ epggrab_ota_mux_t *epggrab_ota_register
   LIST_INSERT_HEAD(&ota_muxes, ota, glob_link);
   LIST_INSERT_HEAD(&tdmi->tdmi_epg_grabbers, ota, tdmi_link);
   LIST_INSERT_HEAD(&mod->muxes, ota, grab_link);
+
+  /* Re-assign to correct queue */
+  if (tdmi->tdmi_scan_queue)
+    TAILQ_REMOVE(tdmi->tdmi_scan_queue, tdmi, tdmi_scan_link);
+  dvb_mux_add_to_scan_queue(tdmi);
+
   return ota;
 }