From 905531f2576c744d2cb14f7ce2bf8538f5cd68fa Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Wed, 27 Jun 2012 09:36:01 +0100 Subject: [PATCH] Some more work getting the mux scanner code to work properly. --- src/dvb/dvb.h | 2 ++ src/dvb/dvb_fe.c | 7 +------ src/dvb/dvb_multiplex.c | 11 +++++++++++ src/epggrab/ota.c | 6 ++++++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/dvb/dvb.h b/src/dvb/dvb.h index 488620bc..1f843cfc 100644 --- a/src/dvb/dvb.h +++ b/src/dvb/dvb.h @@ -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) */ diff --git a/src/dvb/dvb_fe.c b/src/dvb/dvb_fe.c index c6f91a19..79087940 100644 --- a/src/dvb/dvb_fe.c +++ b/src/dvb/dvb_fe.c @@ -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); diff --git a/src/dvb/dvb_multiplex.c b/src/dvb/dvb_multiplex.c index de7324aa..8a4b8882 100644 --- a/src/dvb/dvb_multiplex.c +++ b/src/dvb/dvb_multiplex.c @@ -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); +} diff --git a/src/epggrab/ota.c b/src/epggrab/ota.c index 2804a616..2dc132d5 100644 --- a/src/epggrab/ota.c +++ b/src/epggrab/ota.c @@ -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; }