void (*mn_display_name) (mpegts_network_t*, char *buf, size_t len);
void (*mn_config_save) (mpegts_network_t*);
mpegts_mux_t* (*mn_create_mux)
- (mpegts_mux_t*, uint16_t onid, uint16_t tsid, void *conf, int force);
+ (mpegts_network_t*, void *origin, uint16_t onid, uint16_t tsid,
+ void *conf, int force);
mpegts_service_t* (*mn_create_service)
(mpegts_mux_t*, uint16_t sid, uint16_t pmt_pid);
const idclass_t* (*mn_mux_class) (mpegts_network_t*);
MM_ORIG_AUTO ///< From NIT
} mm_dmc_origin2;
#endif
- mpegts_mux_t *mm_dmc_origin;
+ void *mm_dmc_origin;
time_t mm_dmc_origin_expire;
char *mm_fastscan_muxes;
tvhdebug(mt->mt_name, " %s", buf);
/* Create */
- return mm->mm_network->mn_create_mux(mm, onid, tsid, &dmc, force);
+ return mm->mm_network->mn_create_mux(mm->mm_network, mm, onid, tsid, &dmc, force);
}
/*
tvhdebug(mt->mt_name, " %s", buf);
/* Create */
- return mm->mm_network->mn_create_mux(mm, onid, tsid, &dmc, 0);
+ return mm->mm_network->mn_create_mux(mm->mm_network, mm, onid, tsid, &dmc, 0);
}
/*
tvhdebug(mt->mt_name, " %s", buf);
/* Create */
- return mm->mm_network->mn_create_mux(mm, onid, tsid, &dmc, 0);
+ return mm->mm_network->mn_create_mux(mm->mm_network, mm, onid, tsid, &dmc, 0);
}
#endif /* ENABLE_MPEGTS_DVB */
static mpegts_mux_t *
mpegts_network_create_mux
- ( mpegts_mux_t *mm, uint16_t sid, uint16_t tsid, void *aux, int force )
+ ( mpegts_network_t *mn, void *origin, uint16_t sid, uint16_t tsid,
+ void *aux, int force )
{
return NULL;
}
static mpegts_mux_t *
dvb_network_create_mux
- ( mpegts_mux_t *mm, uint16_t onid, uint16_t tsid, void *p, int force )
+ ( mpegts_network_t *mn, void *origin, uint16_t onid, uint16_t tsid,
+ void *p, int force )
{
int save = 0, satpos;
- mpegts_mux_t *mmo = mm;
- mpegts_network_t *mn = mm->mm_network;
+ dvb_mux_t *mm;
dvb_network_t *ln;
dvb_mux_conf_t *dmc = p;
const idclass_t *cls = dvb_network_mux_class(mn);
}
ln = (dvb_network_t*)mn;
- mm = dvb_network_find_mux(ln, dmc, onid, tsid);
+ mm = (dvb_mux_t *)dvb_network_find_mux(ln, dmc, onid, tsid);
if (!mm && (ln->mn_autodiscovery || force)) {
cls = dvb_network_mux_class((mpegts_network_t *)ln);
save |= cls == &dvb_mux_dvbt_class && dmc->dmc_fe_type == DVB_TYPE_T;
save = 0;
}
if (save) {
- mm = (mpegts_mux_t*)dvb_mux_create0(ln, onid, tsid, dmc, NULL, NULL);
+ mm = dvb_mux_create0(ln, onid, tsid, dmc, NULL, NULL);
#if ENABLE_TRACE
char buf[128];
dvb_mux_conf_str(&((dvb_mux_t *)mm)->lm_tuning, buf, sizeof(buf));
dvb_mux_t *lm = (dvb_mux_t*)mm;
/* the nit tables may be inconsistent (like rolloff ping-pong) */
/* accept information only from one origin mux */
- if (mm->mm_dmc_origin_expire > dispatch_clock && mm->mm_dmc_origin && mm->mm_dmc_origin != mmo)
+ if (mm->mm_dmc_origin_expire > dispatch_clock && mm->mm_dmc_origin && mm->mm_dmc_origin != origin)
goto noop;
#if ENABLE_TRACE
#define COMPARE(x) ({ \
}
save:
if (mm && save) {
- mm->mm_dmc_origin = mmo;
+ mm->mm_dmc_origin = origin;
mm->mm_dmc_origin_expire = dispatch_clock + 3600 * 24; /* one day */
- mm->mm_config_save(mm);
+ mm->mm_config_save((mpegts_mux_t *)mm);
}
noop:
- return mm;
+ return (mpegts_mux_t *)mm;
}
static mpegts_service_t *