diff --git a/src/dvb/dvb.h b/src/dvb/dvb.h index 51392357..be70e6b8 100644 --- a/src/dvb/dvb.h +++ b/src/dvb/dvb.h @@ -175,7 +175,7 @@ typedef struct dvb_network { struct th_dvb_mux_instance_queue dn_initial_scan_queue; int dn_initial_num_mux; - int dn_fe_type; + th_dvb_mux_instance_t *dn_mux_epg; } dvb_network_t; @@ -194,8 +194,6 @@ typedef struct th_dvb_adapter { th_dvb_mux_instance_t *tda_mux_current; char *tda_tune_reason; // Reason for last tune - th_dvb_mux_instance_t *tda_mux_epg; - int tda_table_epollfd; const char *tda_rootpath; diff --git a/src/dvb/dvb_adapter.c b/src/dvb/dvb_adapter.c index c0a3c9cf..a1175c69 100644 --- a/src/dvb/dvb_adapter.c +++ b/src/dvb/dvb_adapter.c @@ -733,20 +733,21 @@ dvb_adapter_mux_scanner(void *aux) } /* Check EPG */ - if (tda->tda_mux_epg) { - epggrab_mux_stop(tda->tda_mux_epg, 1); // timeout anything not complete - tda->tda_mux_epg = NULL; // skip this time + if (tda->tda_dn->dn_mux_epg) { + // timeout anything not complete + epggrab_mux_stop(tda->tda_dn->dn_mux_epg, 1); + tda->tda_dn->dn_mux_epg = NULL; // skip this time } else { - tda->tda_mux_epg = epggrab_mux_next(tda); + tda->tda_dn->dn_mux_epg = epggrab_mux_next(tda); } /* EPG */ - if (tda->tda_mux_epg) { - int period = epggrab_mux_period(tda->tda_mux_epg); + if (tda->tda_dn->dn_mux_epg) { + int period = epggrab_mux_period(tda->tda_dn->dn_mux_epg); if (period > 20) gtimer_arm(&tda->tda_mux_scanner_timer, dvb_adapter_mux_scanner, tda, period); - dvb_fe_tune(tda->tda_mux_epg, "EPG scan"); + dvb_fe_tune(tda->tda_dn->dn_mux_epg, "EPG scan"); return; }