return NULL;
}
- memset(&dmc, 0, sizeof(dmc));
- dmc.dmc_fe_type = DVB_TYPE_S;
- dmc.dmc_fe_pilot = DVB_PILOT_AUTO;
- dmc.dmc_fe_inversion = DVB_INVERSION_AUTO;
+ dvb_mux_conf_init(&dmc, (ptr[6] & 0x4) ? DVB_SYS_DVBS2 : DVB_SYS_DVBS);
+
dmc.dmc_fe_freq = frequency;
dmc.u.dmc_fe_qpsk.orbital_pos = bcdtoint(ptr[4]) * 100 + bcdtoint(ptr[5]);
dmc.u.dmc_fe_qpsk.orbital_dir = (ptr[6] & 0x80) ? 'E' : 'W';
static int rtab[4] = {
DVB_ROLLOFF_35, DVB_ROLLOFF_25, DVB_ROLLOFF_20, DVB_ROLLOFF_AUTO
};
- dmc.dmc_fe_delsys = (ptr[6] & 0x4) ? DVB_SYS_DVBS2 : DVB_SYS_DVBS;
dmc.dmc_fe_modulation = mtab[ptr[6] & 0x3];
if (dmc.dmc_fe_modulation != DVB_MOD_NONE &&
dmc.dmc_fe_modulation != DVB_MOD_QPSK)
return NULL;
}
- memset(&dmc, 0, sizeof(dmc));
- dmc.dmc_fe_type = DVB_TYPE_C;
- dmc.dmc_fe_delsys = DVB_SYS_DVBC_ANNEX_A;
- dmc.dmc_fe_inversion = DVB_INVERSION_AUTO;
+ dvb_mux_conf_init(&dmc, DVB_SYS_DVBC_ANNEX_A);
+
dmc.dmc_fe_freq = frequency * 100;
dmc.u.dmc_fe_qam.symbol_rate = symrate * 100;
return NULL;
}
- memset(&dmc, 0, sizeof(dmc));
- dmc.dmc_fe_type = DVB_TYPE_T;
- dmc.dmc_fe_delsys = DVB_SYS_DVBT;
- dmc.dmc_fe_inversion = DVB_INVERSION_AUTO;
- dmc.dmc_fe_freq = frequency * 10;
+ dvb_mux_conf_init(&dmc, DVB_SYS_DVBT);
+ dmc.dmc_fe_freq = frequency * 10;
dmc.u.dmc_fe_ofdm.bandwidth = btab[(ptr[4] >> 5) & 0x7];
dmc.dmc_fe_modulation = ctab[(ptr[5] >> 6) & 0x3];
dmc.u.dmc_fe_ofdm.hierarchy_information = htab[(ptr[5] >> 3) & 0x3];
r = sscanf(line, "%u %s", &mux->dmc_fe_freq, qam);
if (r != 2) return 1;
- mux->dmc_fe_type = DVB_TYPE_ATSC;
- mux->dmc_fe_delsys = DVB_SYS_ATSC;
+ dvb_mux_conf_init(mux, DVB_SYS_ATSC);
if ((mux->dmc_fe_modulation = dvb_str2qam(qam)) == -1) return 1;
return 0;
if (*line == '2') {
unsigned int system_id;
+ dvb_mux_conf_init(mux, DVB_SYS_DVBT2);
r = sscanf(line+1, "%u %s", &mux->dmc_fe_stream_id, bw);
if (r == 2 && mux->dmc_fe_stream_id < 1000 && strstr(bw, "MHz") == 0) {
r = sscanf(line+1, "%u %u %u %10s %10s %10s %10s %10s %10s %10s",
if(r == 8) mux->dmc_fe_stream_id = DVB_NO_STREAM_ID_FILTER; else
if(r != 9) return 1;
}
- mux->dmc_fe_delsys = DVB_SYS_DVBT2;
} else {
+ dvb_mux_conf_init(mux, DVB_SYS_DVBT);
r = sscanf(line, "%u %10s %10s %10s %10s %10s %10s %10s",
&mux->dmc_fe_freq, bw, fec, fec2, qam, mode, guard, hier);
if(r != 8) return 1;
- mux->dmc_fe_delsys = DVB_SYS_DVBT;
}
- mux->dmc_fe_type = DVB_TYPE_T;
if ((mux->u.dmc_fe_ofdm.bandwidth = dvb_str2bw(bw)) == -1) return 1;
if ((mux->dmc_fe_modulation = dvb_str2qam(qam)) == -1) return 1;
if ((mux->u.dmc_fe_ofdm.code_rate_HP = dvb_str2fec(fec)) == -1) return 1;
line++;
}
+ dvb_mux_conf_init(mux, v2 ? DVB_SYS_DVBS2 : DVB_SYS_DVBS);
+
r = sscanf(line, "%u %s %u %s %s %s %d %d %d",
&mux->dmc_fe_freq, pol, &mux->u.dmc_fe_qpsk.symbol_rate,
fec, rolloff, qam, &mux->dmc_fe_stream_id, &mux->dmc_fe_pls_code, (int*)&mux->dmc_fe_pls_mode);
if (r < (4+v2)) return 1;
- mux->dmc_fe_type = DVB_TYPE_S;
if ((mux->u.dmc_fe_qpsk.polarisation = dvb_str2pol(pol)) == -1) return 1;
if ((mux->u.dmc_fe_qpsk.fec_inner = dvb_str2fec(fec)) == -1) return 1;
if (v2) {
- mux->dmc_fe_delsys = DVB_SYS_DVBS2;
if ((mux->dmc_fe_rolloff = dvb_str2rolloff(rolloff)) == -1) return 1;
if ((mux->dmc_fe_modulation = dvb_str2qam(qam)) == -1) return 1;
if (r < (4+v2+1)) mux->dmc_fe_stream_id = DVB_NO_STREAM_ID_FILTER;
if (r < (4+v2+2)) mux->dmc_fe_pls_code = 1;
if (r < (4+v2+3)) mux->dmc_fe_pls_mode = 0;
} else {
- mux->dmc_fe_delsys = DVB_SYS_DVBS;
mux->dmc_fe_rolloff = DVB_ROLLOFF_35;
mux->dmc_fe_modulation = DVB_MOD_QPSK;
}
&mux->dmc_fe_freq, &mux->u.dmc_fe_qam.symbol_rate, fec, qam);
if(r != 4) return 1;
- mux->dmc_fe_type = DVB_TYPE_C;
- mux->dmc_fe_delsys = DVB_SYS_DVBC_ANNEX_A;
+ dvb_mux_conf_init(mux, DVB_SYS_DVBC_ANNEX_A);
if ((mux->u.dmc_fe_qam.fec_inner = dvb_str2fec(fec)) == -1) return 1;
if ((mux->dmc_fe_modulation = dvb_str2qam(qam)) == -1) return 1;
scanfile_load_one ( scanfile_network_t *net, const char *line )
{
int r = 1;
- dvb_mux_conf_t *mux = calloc(1, sizeof(dvb_mux_conf_t));
+ dvb_mux_conf_t *mux = malloc(sizeof(dvb_mux_conf_t));
switch (line[0]) {
case 'A':
htsmsg_add_str(l, s, t);
}
- mux = calloc(1, sizeof(dvb_mux_conf_t));
+ mux = malloc(sizeof(dvb_mux_conf_t));
x = htsmsg_get_str(l, "DELIVERY_SYSTEM");
if (!x || (int)mux->dmc_fe_delsys < 0)
mux_fail(r, "wrong system '%s'", x);
+ dvb_mux_conf_init(mux, mux->dmc_fe_delsys);
+
if (mux->dmc_fe_delsys == DVB_SYS_DVBT ||
mux->dmc_fe_delsys == DVB_SYS_DVBT2) {
- mux->dmc_fe_type = DVB_TYPE_T;
mux->u.dmc_fe_ofdm.bandwidth = DVB_BANDWIDTH_AUTO;
mux->u.dmc_fe_ofdm.code_rate_HP = DVB_FEC_AUTO;
mux->u.dmc_fe_ofdm.code_rate_LP = DVB_FEC_NONE;
mux->dmc_fe_modulation = DVB_MOD_QAM_64;
mux->u.dmc_fe_ofdm.transmission_mode = DVB_TRANSMISSION_MODE_8K;
mux->u.dmc_fe_ofdm.hierarchy_information = DVB_HIERARCHY_NONE;
- mux->dmc_fe_inversion = DVB_INVERSION_AUTO;
if ((x = htsmsg_get_str(l, "BANDWIDTH_HZ"))) {
if (isdigit(x[0])) {
} else if (mux->dmc_fe_delsys == DVB_SYS_DVBS ||
mux->dmc_fe_delsys == DVB_SYS_DVBS2) {
- mux->dmc_fe_type = DVB_TYPE_S;
mux->dmc_fe_modulation =
mux->dmc_fe_delsys == DVB_SYS_DVBS2 ? DVB_MOD_PSK_8 : DVB_MOD_QPSK;
mux->u.dmc_fe_qpsk.fec_inner = DVB_FEC_AUTO;
- mux->dmc_fe_inversion = DVB_INVERSION_AUTO;
mux->dmc_fe_rolloff = DVB_ROLLOFF_35;
- mux->dmc_fe_pilot = DVB_PILOT_AUTO;
if ((x = htsmsg_get_str(l, "MODULATION")))
if ((mux->dmc_fe_modulation = dvb_str2qam(x)) == -1)
mux->dmc_fe_delsys == DVB_SYS_DVBC_ANNEX_B ||
mux->dmc_fe_delsys == DVB_SYS_DVBC_ANNEX_C) {
- mux->dmc_fe_type = DVB_TYPE_C;
mux->dmc_fe_modulation = DVB_MOD_QAM_128;
mux->u.dmc_fe_qam.fec_inner = DVB_FEC_NONE;
- mux->dmc_fe_inversion = DVB_INVERSION_AUTO;
if ((x = htsmsg_get_str(l, "MODULATION")))
if ((mux->dmc_fe_modulation = dvb_str2qam(x)) == -1)
mux->dmc_fe_type = DVB_TYPE_ATSC;
mux->dmc_fe_modulation = DVB_MOD_VSB_8;
- mux->dmc_fe_inversion = DVB_INVERSION_AUTO;
if ((x = htsmsg_get_str(l, "MODULATION")))
if ((mux->dmc_fe_modulation = dvb_str2qam(x)) == -1)