Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
fastscan/bouquet: the satpos in local urls is human readable now
  • Loading branch information
perexg committed Nov 8, 2014
1 parent 42901e6 commit 4de6525
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 10 deletions.
4 changes: 4 additions & 0 deletions src/input/mpegts/dvb.h
Expand Up @@ -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 );
Expand Down
16 changes: 6 additions & 10 deletions src/input/mpegts/dvb_psi.c
Expand Up @@ -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);
Expand Down Expand Up @@ -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
}
Expand Down
26 changes: 26 additions & 0 deletions src/input/mpegts/dvb_support.c
Expand Up @@ -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 */

/**
Expand Down

0 comments on commit 4de6525

Please sign in to comment.