fixed FE_QPSK tuning (all frequencies were overwritten when tuned)

This commit is contained in:
Robert 2009-09-06 15:53:17 +00:00
parent a11a1b266d
commit 6fe9742348
2 changed files with 9 additions and 5 deletions

View file

@ -58,12 +58,13 @@ enum polarisation {
#define DVB_FEC_ERROR_LIMIT 20
typedef struct dvb_frontend_parameters dvb_frontend_parameters_t;
/**
*
*/
typedef struct dvb_mux_conf {
struct dvb_frontend_parameters dmc_fe_params;
dvb_frontend_parameters_t dmc_fe_params;
int dmc_polarisation;
dvb_satconf_t *dmc_satconf;
#if DVB_API_VERSION >= 5

View file

@ -232,10 +232,9 @@ static struct dtv_properties clear_cmdseq = {
*
*/
static int
dvb_fe_tune_s2(th_dvb_mux_instance_t *tdmi, const char *name)
dvb_fe_tune_s2(th_dvb_mux_instance_t *tdmi, dvb_mux_conf_t *dmc, const char *name)
{
th_dvb_adapter_t *tda = tdmi->tdmi_adapter;
dvb_mux_conf_t *dmc = &tdmi->tdmi_conf;
struct dvb_frontend_parameters *p = &dmc->dmc_fe_params;
int r;
@ -293,7 +292,11 @@ void
dvb_fe_tune(th_dvb_mux_instance_t *tdmi, const char *reason)
{
th_dvb_adapter_t *tda = tdmi->tdmi_adapter;
struct dvb_frontend_parameters *p = &tdmi->tdmi_conf.dmc_fe_params;
// copy dmc, cause frequency may be change with FE_QPSK
dvb_mux_conf_t dmc = tdmi->tdmi_conf;
dvb_frontend_parameters_t* p = &dmc.dmc_fe_params;
char buf[256];
int r;
@ -358,7 +361,7 @@ dvb_fe_tune(th_dvb_mux_instance_t *tdmi, const char *reason)
#if DVB_API_VERSION >= 5
if (tda->tda_type == FE_QPSK)
r = dvb_fe_tune_s2(tdmi, buf);
r = dvb_fe_tune_s2(tdmi, &dmc, buf);
else
#endif
r = 1; // Make it tune via old API