fastscan/bouquet: the satpos in local urls is human readable now
This commit is contained in:
parent
42901e6140
commit
4de6525170
3 changed files with 36 additions and 10 deletions
|
@ -492,6 +492,10 @@ int dvb_delsys2type ( enum dvb_fe_delivery_system ds );
|
|||
|
||||
int dvb_mux_conf_str ( dvb_mux_conf_t *conf, char *buf, size_t bufsize );
|
||||
|
||||
int dvb_sat_position( const dvb_mux_conf_t *mc );
|
||||
|
||||
const char *dvb_sat_position_to_str( int position, char *buf, size_t buflen );
|
||||
|
||||
#endif /* ENABLE_MPEGTS_DVB */
|
||||
|
||||
void dvb_done ( void );
|
||||
|
|
|
@ -811,10 +811,9 @@ dvb_nit_callback
|
|||
if (idnode_is_instance(&mm->mm_id, &dvb_mux_dvbs_class)) {
|
||||
dvb_mux_conf_t *mc = &((dvb_mux_t *)mm)->lm_tuning;
|
||||
if (mc->u.dmc_fe_qpsk.orbital_dir) {
|
||||
int pos = mc->u.dmc_fe_qpsk.orbital_pos;
|
||||
if (mc->u.dmc_fe_qpsk.orbital_dir == 'W')
|
||||
pos = -pos;
|
||||
snprintf(dauth, sizeof(dauth), "dvb-bouquet://dvbs,%d/%s", pos, name);
|
||||
char buf[16];
|
||||
dvb_sat_position_to_str(dvb_sat_position(mc), buf, sizeof(buf));
|
||||
snprintf(dauth, sizeof(dauth), "dvb-bouquet://dvbs,%s/%s", buf, name);
|
||||
}
|
||||
} else if (idnode_is_instance(&mux->mm_id, &dvb_mux_dvbt_class)) {
|
||||
snprintf(dauth, sizeof(dauth), "dvb-bouquet://dvbt/%s", name);
|
||||
|
@ -1801,12 +1800,9 @@ psi_tables_dvb ( mpegts_mux_t *mm )
|
|||
#if ENABLE_MPEGTS_DVB
|
||||
if (idnode_is_instance(&mm->mm_id, &dvb_mux_dvbs_class)) {
|
||||
dvb_mux_conf_t *mc = &((dvb_mux_t *)mm)->lm_tuning;
|
||||
if (mc->dmc_fe_type == DVB_TYPE_S) {
|
||||
int pos = mc->u.dmc_fe_qpsk.orbital_pos;
|
||||
if (mc->u.dmc_fe_qpsk.orbital_dir == 'W')
|
||||
pos = -pos;
|
||||
dvb_fastscan_each(mm, pos, mc->dmc_fe_freq, psi_tables_dvb_fastscan);
|
||||
}
|
||||
if (mc->dmc_fe_type == DVB_TYPE_S)
|
||||
dvb_fastscan_each(mm, dvb_sat_position(mc),
|
||||
mc->dmc_fe_freq, psi_tables_dvb_fastscan);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -842,6 +842,32 @@ dvb_mux_conf_str ( dvb_mux_conf_t *dmc, char *buf, size_t bufsize )
|
|||
}
|
||||
}
|
||||
|
||||
int
|
||||
dvb_sat_position(const dvb_mux_conf_t *mc)
|
||||
{
|
||||
int pos = mc->u.dmc_fe_qpsk.orbital_pos;
|
||||
assert(mc->dmc_fe_type == DVB_TYPE_S);
|
||||
if (!mc->u.dmc_fe_qpsk.orbital_dir)
|
||||
return INT_MAX;
|
||||
if (mc->u.dmc_fe_qpsk.orbital_dir == 'W')
|
||||
return -pos;
|
||||
return pos;
|
||||
}
|
||||
|
||||
const char *
|
||||
dvb_sat_position_to_str(int position, char *buf, size_t buflen)
|
||||
{
|
||||
const int dec = position % 10;
|
||||
|
||||
if (!buf || !buflen)
|
||||
return "";
|
||||
snprintf(buf, buflen, "%d", position / 10);
|
||||
if (dec)
|
||||
snprintf(buf + strlen(buf), buflen - strlen(buf), ".%d", dec);
|
||||
snprintf(buf + strlen(buf), buflen - strlen(buf), "%c", dec < 0 ? 'W' : 'E');
|
||||
return buf;
|
||||
}
|
||||
|
||||
#endif /* ENABLE_MPEGTS_DVB */
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue