Some more work getting the mux scanner code to work properly.

This commit is contained in:
Adam Sutton 2012-06-27 09:36:01 +01:00
parent 8f3a9d5ee5
commit 905531f257
4 changed files with 20 additions and 6 deletions

View 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)
*/

View 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);

View 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);
}

View 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;
}